为什么spring容器甚至为具有默认访问权限的类创建bean而不检查访问限制?

时间:2016-08-25 09:26:04

标签: spring access-modifiers

我有一个包“A”的接口“Shape”并实现了类“Rectangle”。接口和类都具有默认访问权限。现在我有另一个包含“ShapeTester”类的包“B”。在这个ShapeTester类中,我尝试实例化类Rectangle或尝试声明一个Shape类型的变量,我得到了预期的编译错误。 但是在ShapeTester类中,如果我使用Spring容器来创建bean,它会为类Rectangle创建bean。

Spring Framework是否创建bean没有错,甚至没有检查为Rectangle创建bean的类甚至不知道任何这样的Rectangle类甚至存在?

1 个答案:

答案 0 :(得分:0)

Spring只是创建对象实例。从弹簧容器启动哪个类或包无关紧要。

java可见性概念与静态关系更相关。例如,如果包a中有A类,则所有规则都基于此。如果A类是由另一个包中的B类实例化的,则无关紧要。