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

@Slf4j
@Configuration
public class Dependon {
    @Bean
    public String getString1(){
      log.info("getString1 执行了");
        return "A";
    }

    @Bean
    public String getString2(){
      log.info("getString2 执行了");
      return "A";
    }
}
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注解

@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";
    }
}
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会帮我们排序。我们无需关注,但是我们需要了解此注解。

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤