我正在使用错误构建的spring应用程序.需要引用的对象不是使用IOC,而是从上下文中提取其引用:
beanfactory b = SingletonbeanfactoryLocator.getInstance().
usebeanfactory("factory").getFactory();
Bean foo = (FOO)beanfactory.getBean("foo");
撇开非IOC设计,这还有其他有害影响吗?例如,这是否对性能有特殊影响?有什么办法可以导致创建其他上下文或对象引用?还有什么真正令人不愉快的事情可能引起的吗?
最佳答案
@H_502_13@古老的短语“您可以用任何语言编程fortran”都浮现在脑海.使用spring作为服务定位器听起来好像您错过了许多使spring变得美好的事情. Spring也不是一个漂亮的服务定位器.这也使单元测试变得更加困难,因为您松开了一些非常好的松散耦合. (您通过这种方式拧紧联轴器)
IMO仅凭这些论点就足以转换.我什至不会开始谈论性能,其他人已经指出,除非您处于紧密的循环中,否则不太可能.
从好的方面来说,您可能真的很容易转换为spring注释,这可能是代码原始作者未执行“正确” spring的原因.他不喜欢所有的xml.使用注释,您不需要所有的xml.