当@Beans相互依赖时,表示依赖关系就像一个bean方法调用另一个方法一样简
单:
@Configuration
public class AppConfig {
@Bean
public Foo foo() {
return new Foo(bar());
}
@Bean
public Bar bar() {
return new Bar();
}
}
上面的例子,foo接受一个bar的引用来进行构造器注入:
这种方法声明的bean的依赖关系只有在@Configuration类的@Bean方法中有
效。你不能在@Component类中来声明bean的依赖关系,即在@Component中@Bean是lite模式,对于上例,如果改成
@Component
public class AppConfig {
@Bean
public Foo foo() {
return new Foo(bar());
}
@Bean
public Bar bar() {
return new Bar();
}
}
则foo()方法中new Foo(bar())传入的bar()方法会每次产生一个新的Bar对象,并不会像非lite模式中,每次调用法传入的Bar对象都是同一个
springboot中@bean的lite模式
最新推荐文章于 2025-02-15 18:44:18 发布