在应用程序请求为空后使用 Autowired 获取实例
Use Autowired to get instance after application request is null
我需要获取使用 Spring 引导应用程序启动生成的 ConnectionFactory 实例,
@Configuration
public class Config {
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
return connectionFactory;
}
}
public class Consumer {
@Autowired Config config;
public void request(Queue queue) {
ConnectionFactory cf=config.connectionFactory();
}
}
我得到的配置对象为 null,即使该值是自动连接的,并且在 Spring加载启动应用程序后有什么方法可以获取连接工厂实例。
不使用static和current是否可以获取实例?我将实例设置为静态对象并检索它,但我需要使用没有静态方法的现有连接工厂实例。
请建议如何实施?
@Bean
向 Spring bean 工厂注册了一个 ConnectionFactory
实例。所以你应该 @Autowire
那。并且 Consumer
应该标记为 @Component
或等价物,以便 Spring 可以管理填充 @Autowired
bean。
@Component
public class Consumer {
@Autowired ConnectionFactory cf;
public void request(Queue queue) {
// use the connection factory here
}
}
我需要获取使用 Spring 引导应用程序启动生成的 ConnectionFactory 实例,
@Configuration
public class Config {
@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
return connectionFactory;
}
}
public class Consumer {
@Autowired Config config;
public void request(Queue queue) {
ConnectionFactory cf=config.connectionFactory();
}
}
我得到的配置对象为 null,即使该值是自动连接的,并且在 Spring加载启动应用程序后有什么方法可以获取连接工厂实例。
不使用static和current是否可以获取实例?我将实例设置为静态对象并检索它,但我需要使用没有静态方法的现有连接工厂实例。
请建议如何实施?
@Bean
向 Spring bean 工厂注册了一个 ConnectionFactory
实例。所以你应该 @Autowire
那。并且 Consumer
应该标记为 @Component
或等价物,以便 Spring 可以管理填充 @Autowired
bean。
@Component
public class Consumer {
@Autowired ConnectionFactory cf;
public void request(Queue queue) {
// use the connection factory here
}
}