项目部署弹出时初始化bean

时间:2016-08-14 00:44:32

标签: spring javabeans

我在一次采访中被问到如何在Spring中进行项目部署时初始化bean?

1 个答案:

答案 0 :(得分:0)

有几种选择:

  • 你的bean可以实现InitializingBean接口,并且可以在afterPropertiesSet()方法内部完成初始化工作

  • 您可以在bean类中添加一个方法,并使用@PostConstruct

  • 对其进行注释
  • 您可以在bean类中添加方法并将其标记为init方法。使用xml config,bean定义如下所示:

    <beans>
        <bean id="myBean" class="..." init-method="init"/>
    </beans>
    
    并使用这样的Java配置:
    @Bean(initMethod="init")
    public MyBean myBean() {
        return new MyBean();
    }
    

  • 您还可以实现自己的BeanPostProcessor并在postProcessAfterInitialization或postProcessBeforeInitialization方法中提供实现。

一个警告:所有这些初始化逻辑都是bean生命周期的一部分,这并不意味着它将在项目部署期间被调用。 但是,如果bean是单例bean,则默认情况下它是在spring上下文启动期间创建的。我想这就是项目部署的意思。