配置文件-依赖注入

文章目录

  • 前言
  • 一、如何解决注入依赖顺序?
  • 二、不生效的到问题
  • 三 解决办法
  • 总结


前言

spring注入bean的时候,可以指定某些注入顺序

例如:A B两个bean注入,B依赖A ,所以要先注入A 然后才能注入B,此时如何处理呢?


一、如何解决注入依赖顺序?

通过添加注解: @AutoConfigureBefore @AutoConfigureAfter

二、不生效的到问题

例如A B两个要注入的Bean如下

代码如下(示例):

B.java

@Configuration
@AutoConfigureBefore(A.class)
public class B {

}

A.java

@Configuration
public class A {

}

这样确实配置了注入的顺序,先注入A 然后注入B,但是这样配置是不生效的,不生效的原因是因为@Configuration的原因,导致依赖失效了

三 解决办法

不采用@Configuration 注入,仍然是用 @AutoConfigureBefore 或者 @AutoConfigureAfter 进行注入依赖的排序

B.java

@AutoConfigureBefore(A.class)
public class B {

}

A.java

public class A {

}

然后通过spring.factories自动装配文件,注入进去

org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.test.A
com.test.B

配置文件-依赖注入_第1张图片

总结

之所以导致依赖注入顺序时效的原因是由于 类似 @Configuration 等 aop扫描是不分先后顺序的,然后通过 spring.factories文件,是明确了要注入的文件,然后由于文件上有依赖顺序,所以生效!

你可能感兴趣的:(springboot,spring,依赖,注入,顺序)