我正在重构一个遗留 Java 应用程序以使用 Spring。
这涉及将应用程序类声明为 Spring bean,然后将所有出现的 替换new
为context.getBean
或DI
。
我正在以某些类成为单例的方式重写应用程序逻辑。但是,由于它们是在其他位置使用 new 实例化的,因此会存在多个副本,这会打乱业务逻辑。我想确保应用程序在尝试自行实例化对象时显式失败,而不是以不可预测的方式运行和行为不端。(我不确定重构是否覆盖了 100% 的应用程序,但仍有可能在某个角落潜伏新的)
确保类只能由 Spring 容器实例化的最佳方法是什么?(我希望避免为每个班级写一个工厂)