学习中遇到了@RefreshScope、 @ConditionalOnMissionBean和@Lazy 注解,查了些资料了解记录一下。
- @RefreshScope 注解是 Spring Cloud 中定义的一个注解。
其表示的意思是,该@Bean 方法会以多例的形式生成会自动刷新的 Bean 实例。 - @ConditionalOnMissionBean 注解
表示的意思是,只有当容器中没有@Bean 要创建的实 例时才会创建新的实例,即这里创建的@Bean 实例是单例的。 - @Lazy 注解表示延迟实例化。
即在当前配置类被实例化时并不会调用这里的@Bean 方法去创建实例,而是在代码执行过程中,真正需要这个@Bean 方法的实例时才会创建。
注意:
这三个注解的联用不存在矛盾,其要表达的意思是,这个@Bean 会以延迟实例化的形式创建一个单例的对象,而该对象具有自动刷新功能。