Spring自动装配的成员可见性

时间:2012-01-15 11:50:17

标签: java spring visibility autowired

在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的好例子

1 个答案:

答案 0 :(得分:5)

您误读了文档。您提供的链接中的页面显示:

  

任何给定bean类只有一个构造函数(最大值)可以带有这个注释,指示构造函数在用作Spring bean时要自动装配。 这样的构造函数不必公开

     

在构造bean之后立即注入字段,然后调用任何配置方法。 这样的配置字段不一定是公开的

     

配置方法可以有任意名称和任意数量的参数;每个参数都将使用Spring容器中的匹配bean进行自动装配。 Bean属性设置器方法实际上只是这种通用配置方法的特例。 此类配置方法不必公开

在任何时候都没有说“它应该被宣布为私人而非公开”。实际上,文档根本没有提到“私人”这个词。

换句话说,Spring并不关心构造函数,方法或字段的可见性。