【发布时间】:2021-08-17 12:44:29
【问题描述】:
正如this question 的回答中提到的,Spring 可以通过反射调用私有构造函数。
通常,当我们使用私有构造函数创建类时,我们会使用它来防止在类外部实例化,例如 Singleton 类,或者用于防止使用静态实用方法/常量来实例化类。
Spring 允许实例化具有私有构造函数的 bean 的原因是什么?
【问题讨论】:
标签: spring spring-bean
正如this question 的回答中提到的,Spring 可以通过反射调用私有构造函数。
通常,当我们使用私有构造函数创建类时,我们会使用它来防止在类外部实例化,例如 Singleton 类,或者用于防止使用静态实用方法/常量来实例化类。
Spring 允许实例化具有私有构造函数的 bean 的原因是什么?
【问题讨论】:
标签: spring spring-bean
您必须询问 Spring 开发人员。这可能是为了方便。
它允许您创建除了通过 Spring Container 或其他基于反射的技术之外无法实例化的类。
它允许您要求您的 Java 代码使用需要不同输入的其他构造函数。
如果 Spring 不能使用私有或包访问构造函数,那么您必须声明具有公共访问权限的构造函数。然后您的 Java 代码可以使用它们。您不以这种方式使用类的意图不会那么明确。
【讨论】: