java - Spring在多个@Configuration文件中配置同一个bean

标签 java spring spring-boot quartz-scheduler

当我需要在核心模块@Configuration文件中配置一些bean,然后在顶级模块@Configuration文件中完成核心模块bean的配置时,我遇到了这种情况。 (请参阅下面的代码)

如何在facade的@Configuration文件中完成core-module的SchedulerFactoryBean的设置?

核心模块调度程序配置:

@Configuration
public class BaseSchedulerConfig {

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource,
                                                     JobFactory jobFactory,
                                                     @Qualifier("baseReusableJob") JobDetail baseReusableJob) {
        SchedulerFactoryBean factory = new SchedulerFactoryBean();
        factory.setJobDetails(baseReusableJob);
        return factory;
    }
}

外观模块调度程序配置:

@Configuration
@Import(BaseSchedulerConfig.class)
public class FacadeSchedulerConfig {

    @Autowire
    public SchedulerFactoryBean schedulerFactoryBean;

    // Question: which annotation use to inject module (facade) specific jobs into SchedulerFactoryBean
    public void lookup(@Qualifier("facadeSpecificJob") JobDetail facadeSpecificJob) {
        schedulerFactoryBean.setJobDetails(facadeSpecificJob);
    }
}

最佳答案

您正在寻找@PostConstruct .

The JSR-250 @PostConstruct and @PreDestroy annotations are generally considered best practice for receiving lifecycle callbacks in a modern Spring application.

按预期使用@Configuration。

What is the expected behaviour of @PostConstruct in @Configuration classes?

关于java - Spring在多个@Configuration文件中配置同一个bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41144468/

相关文章:

Java JTextField 长度和过滤器

grails - 读取TCP原始数据并将其发送到ActiveMQ

java - 将 Gradle 项目导入 IntelliJ IDEA 时如何避免重复库

java - 比较Java中的时间和时间操作

java - 将 EntityManager Autowiring 到服务中时出现 FactoryBeanNotInitializedException

java - 方法实现的切入点

Spring Boot Custom Authorization Header 请求根本没有通过

Spring 启动: Inject Bean into HttpServlet

java - 如何动态打开/关闭springboot应用程序中的预定方法

java - 从jtable获取值