配置文件-依赖注入

68 阅读1分钟

文章目录


前言

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

@Configuration
public class A {

}

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

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

或者直接采用两个都为配置文件注入也可

spring.factories

总结

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

本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。