在Spring 3.0.x文档中,它提到当你使用非setter / config方法进行依赖注入ie.Property或Constructor时,它应该被声明为私有而不是公共
EG。 ABc级
{
@Autowired
private Def def; //DEF may be a class or an Interface.
...
....
}
但是我正在尝试使用Spring 2.5.5并尝试将其设置为Public并且它有效......我无法弄清楚为什么它可以工作虽然它必须表现出像Exception抛出的那种感觉
我是Spring Dependency的新手,请告诉我春天网站上的任何其他资源,我可以在这里获得学习Spring DI的好例子
答案 0 :(得分:5)
您误读了文档。您提供的链接中的页面显示:
任何给定bean类只有一个构造函数(最大值)可以带有这个注释,指示构造函数在用作Spring bean时要自动装配。 这样的构造函数不必公开。
在构造bean之后立即注入字段,然后调用任何配置方法。 这样的配置字段不一定是公开的。
配置方法可以有任意名称和任意数量的参数;每个参数都将使用Spring容器中的匹配bean进行自动装配。 Bean属性设置器方法实际上只是这种通用配置方法的特例。 此类配置方法不必公开。
在任何时候都没有说“它应该被宣布为私人而非公开”。实际上,文档根本没有提到“私人”这个词。
换句话说,Spring并不关心构造函数,方法或字段的可见性。