在应用程序请求为空后使用 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
     }
}