java - 应用程序请求为空后使用 Autowired 获取实例

标签 java spring spring-boot autowired

我需要获取使用 Spring Boot 应用程序启动生成的 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,并且有什么方法可以在加载 SpringBoot 应用程序后获取连接工厂实例。

当前是否可以在不使用静态的情况下获取实例?我将实例设置为静态对象并检索它,但我需要使用现有的连接工厂实例而不使用静态方法。

请建议如何实现?

最佳答案

@Bean 向 Spring bean 工厂注册一个 ConnectionFactory 实例。所以你应该@Autowire 。 Consumer 应标记为 @Component 或等效标记,以便 Spring 可以管理填充 @Autowired beans。

@Component
public class Consumer {

   @Autowired ConnectionFactory cf;

     public void request(Queue queue) {
        // use the connection factory here
     }
}

关于java - 应用程序请求为空后使用 Autowired 获取实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58668389/

相关文章:

java - Spring Bean 生命周期 - 构造函数中的 @value 属性为 null

java - 如何向 Spring MVC Controller 方法添加自定义安全注释

java - Spring Boot - 如何打包凭证文件?

java - 原始值如何存储在对象中以及对象被转换时会发生什么

java - 内省(introspection)器发现不再存在的属性

java - 使用 Spring 框架的 Quartz JobStore

java - Spring boot,如何禁用 springSecurityFitlerChain 的自动配置

Java:从遥远的对象访问方法的最佳方式

java - 向不同时区的用户列表发送电子邮件?

java - 如何使用Spring Boot从数据库创建实体类?