当创建一个新的实例
ApplicationContext(不管是哪种类型)时,基本上就是在其中配置的每个bean都创建新实例
ApplicationContext。第一次很好,第二次可能有用,并且根据bean的数量,之后bean的类型将崩溃。由于上下文永远不会被破坏(直到应用程序崩溃并重新启动),因此您将遇到可能的内存问题,性能问题,奇怪的事务问题等。
一般经验法则是 从不 构造an的新实例,
ApplicationContext而改用依赖项注入。
如果您真的想访问
ApplicationContext该类型的字段,请在控制器中放置
@Autowired它。
@Controllerpublic class MyController { @Autowired private ApplicationContext ctx; ….}
然后,您可以在方法中查找所需的bean。如果您将
ApplicationContext用作工厂的bean,这会很方便。如果您需要的所有豆都是单例的,则最好简单地注入您需要的豆。
@Controllerpublic class MyController { @Autowired private MappingFileGenerator mfg ; ….}
现在,Spring将注入,
MappingFileGenerator并且可以在您的方法中使用它。无需创建的新实例
ApplicationContext。
有关更多信息,请参见《 Spring参考指南》。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)