@DependsOn & 控制多个(不同)的@Bean的加载顺序

2022-11-14 16:44:02 浏览数 (1)

我们都知道多个Bean加载是按照代码顺序来的。BeanA下载BeanB前面,那么BeanA是会有在BeanB前面示例化的。

代码语言:javascript复制
@Slf4j
@Configuration
public class Dependon {
    @Bean
    public String getString1(){
      log.info("getString1 执行了");
        return "A";
    }

    @Bean
    public String getString2(){
      log.info("getString2 执行了");
      return "A";
    }
}
代码语言:javascript复制
2022-10-28 14:59:52.256  INFO 18065 --- [           main] com.zanglikun.entity.Dependon            : getString1 执行了
2022-10-28 14:59:52.259  INFO 18065 --- [           main] com.zanglikun.entity.Dependon            : getString2 执行了

如果你想要BeanB优先与BeanA加载,可以考虑@DependOn注解

代码语言:javascript复制
@Slf4j
@Configuration
public class Dependon {
    @Bean
    @DependsOn(value = {"getString2"})
    public String getString1(){
      log.info("getString1 执行了");
        return "A";
    }
    
    @Bean
    public String getString2(){
      log.info("getString2 执行了");
      return "A";
    }
}
代码语言:javascript复制
2022-10-28 15:01:00.738  INFO 18127 --- [           main] com.zanglikun.entity.Dependon            : getString2 执行了
2022-10-28 15:01:00.740  INFO 18127 --- [           main] com.zanglikun.entity.Dependon            : getString1 执行了

一般Spring会帮我们排序。我们无需关注,但是我们需要了解此注解。

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

0 人点赞