Spring vs Java反射

Bee*_*Bee 7 java reflection spring

我需要动态创建对象.我使用Spring创建了一个类名映射.现在我可以用了

弹簧 ApplicationContext.getbean(className)

要么

Java Class.forName(className).newInstance().

哪种方法更有效?

谢谢.

JB *_*zet 7

如果spring bean是一个原型范围的bean,Spring将不得不用反射来实例化它,因此必须做你的第二个代码片段.但是要求Spring上下文获取bean不仅仅会让你获得一个新的类实例.它返回一个Spring bean,你可以在其上应用方面(安全性,事务性等),注入依赖项等.

您不应该根据性能选择要调用的内容,而应该选择要获得的内容.无论如何,与你的应用程序的其他部分(网络调用,数据库查询等)相比,这两个调用的成本可能微不足道.