spring:
redis:
host: localhost
port: 6379
@Configuration
public class DummyConfig {
private Logger logger = LoggerFactory.getLogger(DummyConfig.class);
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@PostConstruct
public void init() {
logger.info("redis host: {}", host);
}
@Bean
public String mappingMongoConverter() {
logger.info("redis host: {}", host);
return "HelloBean";
}
}
问题是:
@bean
注释的方法中,如何使用来自YAML的属性?经过讨论和测试,问题变成了关于@bean
标记的方法名称,而不是关于来自yaml或其他配置文件的属性。
我在spring-boot应用程序的入口类application.java
中添加了以下方法:
/**
* Create a command line runner, that print bean names.
*
* @param ctx
* @return
*/
@Bean
public CommandLineRunner initRunner(ApplicationContext ctx) {
return args -> {
printBeanNames((ConfigurableApplicationContext) ctx);
};
}
/**
* Print bean names.
*
* @param ctx
*/
private void printBeanNames(ConfigurableApplicationContext ctx) {
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames); // sort,
logger.info("bean count: {}", beanNames.length);
for (int i = 0; i < beanNames.length; i++) {
System.out.printf("\t[%4d]: %s\n", i, beanNames[i]);
}
}
它将按字母顺序打印应用程序上下文中所有bean的名称。
并且在应用程序中没有添加关于MongoDB
的依赖项。
我有一个关于spring beans初始化的问题。当我们通过init方法填充bean属性时,scneario是什么。看看下面给出的代码片段。这里我通过init方法填充超类bean属性列表。 1) 超级类Bean: 2)豆子2: 3) Spring上下文xml: 4) 输出:名为Super list2子列表的Super init::0 我的问题是当超级类被容器初始化时,调用init()。在这个方法中
我必须根据tenantIdentifier创建一个数据源bean以实现多租户。我正在考虑开箱即用的解决方案,添加新租户就像在context.xml中添加配置和在应用程序属性文件中添加租户属性一样简单,公开一个API来刷新我的context.xml以便从spring cloud config和属性文件中加载。 目前,我被这个错误所困扰: 我的DataSourceFactoryBean如下所示: 我有
我是spring的新手,我正在尝试修改我的应用程序来实现spring框架。我的请求是为每一个新请求创建一个新bean,然后在后面的代码中引用该bean,以便从单个bean中为其设置值。我正在尝试将bean声明为prototype,并使用查找方法在我的单例bean中引用该bean。但我的问题是,当稍后尝试获取创建的原型bean以设置值时,我看到它在获取bean时再次创建新的bean。 下面是我的原型
如何基于应用程序动态定义bean。yml文件? 例如,YAML文件如下所示: 这将动态创建两个带有内容类型标题集的HTTPHeader。 下面是我现在如何定义bean: 如果我需要添加更多endpoint,我需要复制并粘贴这些bean,这是我想要避免的。 注意:这些动态bean不需要任何其他bean。我不确定这是否有什么不同。它只需要加载配置。
我需要将旧式spring项目迁移到springboot。假设下面的代码片段我必须迁移到Spring Boot风格。 在这里我的问题,如何将下面的抽象bean转换为@Bean?
在使用HTTP远程处理的Spring应用程序中,我有一个服务façade模块,配置如下(我将代码设置为通用代码以提高清晰度): 其中,FirstService和SecondService是与现有实现的接口,此处不需要这些实现的详细信息。 我有另一个模块,它定义了39个代理(HTTPInvokerProxy工厂bean的实例),对应于通过façade公开的每个服务。 到目前为止,一切正常。 但我希望