一直以来关注点都在Spring提供的功能本身,而忽略了其中一些小细节。例如,Spring随Web服务器启动时,会加载一次上下文,这个时候所有bean只会被实例化一次。如果使用过程中一直是通过注入来使用bean的话,那其实不会出问题。
关键有时候不能注入的情况,自然想到手动获取bean。要获取bean自然要获取Spring上下文。
但上下文有几种方式获得方式,例如以下两种,但是它们每次获得的上下文实例其实都是不同的。也就是说配置中的beans会实例化多次。却与我们使用Spring初衷违背了。因此在手动获取上下文要注意以下代码获取方式不能重复执行。
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring.xml");
ApplicationContext context = new FileSystemXmlApplicationContext("classpath:spring.xml");
那么在Web中上下文是随服务器启动的,上下文已经被实例化,如何获得了。
如下:
WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。