从this Spring documentation我了解到,当我使用@Bean时,默认值已经相当于:@Bean(autowire = Autowire.NO)。
(默认)不自动装配。必须通过ref元素定义bean引用。不建议更改默认设置,因为明确指定协作者可以获得更大的控制和清晰度。在某种程度上,它记录了系统的结构。
我只是想弄清楚这对我意味着什么。如果我的系统是100% Java Config并且没有XML配置,那么据我所知,当我使用@Bean时,“Autowire.no”根本没有任何影响。 编辑 我的意思是,对于其他Java Config类中的@Autowired引用,将自动装配此bean。我怀疑这是因为在Java Config中没有明确定义'ref元素',因此此(默认)设置没有影响。
例如:
第一个配置:
然后在第二个配置中:
我看到的是,在第二个配置类中始终自动装配了“alphaBeanType”,这似乎与文档中的描述有冲突,因此我提出了问题。
当然,从文档中我无法确定!有人确切知道吗?
(默认)不自动装配。必须通过ref元素定义bean引用。不建议更改默认设置,因为明确指定协作者可以获得更大的控制和清晰度。在某种程度上,它记录了系统的结构。
我只是想弄清楚这对我意味着什么。如果我的系统是100% Java Config并且没有XML配置,那么据我所知,当我使用@Bean时,“Autowire.no”根本没有任何影响。 编辑 我的意思是,对于其他Java Config类中的@Autowired引用,将自动装配此bean。我怀疑这是因为在Java Config中没有明确定义'ref元素',因此此(默认)设置没有影响。
例如:
第一个配置:
package a.b.c;
@Configuration
public class AlphaConfig {
@Bean(autowire = Autowire.NO)
public AlphaBeanType alphaBean() {
return new AlphaBeanType();
}
}
然后在第二个配置中:
package d.e.f;
import a.b.c.AlphaBeanType;
@Configuration
public class AnotherConfig {
@Autowire
private AlphaBeanType alphaBeanType;
@Bean
. . .
}
我看到的是,在第二个配置类中始终自动装配了“alphaBeanType”,这似乎与文档中的描述有冲突,因此我提出了问题。
当然,从文档中我无法确定!有人确切知道吗?