【问题标题】:Why does spring container create beans even for the class with default access without checking the access restrictions?为什么spring容器甚至为具有默认访问权限的类创建bean而不检查访问限制?
【发布时间】:2017-01-01 15:50:13
【问题描述】:

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

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

【问题讨论】:

    标签: spring access-modifiers


    【解决方案1】:

    Spring 只是创建对象实例。从哪个类或包启动spring容器都没有关系。

    可见性的java概念更多的是与静态关系有关。例如,如果您在包 a 中有一个类 A,那么所有规则都基于此。 A 类是否由其他包中的 B 类实例化并不重要。

    【讨论】:

      猜你喜欢
      • 2017-10-08
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2017-05-05
      • 1970-01-01
      • 2012-05-20
      • 2018-03-11
      相关资源
      最近更新 更多