项目启动时,保存Spring的ApplicationContext实例
? ? ? ? ?今天遇到一个问题就是要实例化对象的一些对象的时候,里面需要用到数据库操作,所以里面有dao层的引用,但是这些要创建的对象,使用的参数都不一定一样的,所以在这些对象里我需要有一个ApplicationContext的引用来获取相应的资源对象。网上找了一下,找到了处理的方法,记录一下。为了避免多次加载或者获取ApplicationContext对象的麻烦,这个时候我们应该在项目启动的时候就把系统启动时的创建的那个ApplicationContext的实例保存起来,用一个静态变量保存,方便以后使用。做法就是继承ContextLoaderListener类,并重写contextInitialized方法,从里面取得ApplicationContext对象并保存。代码如下:
?
<listener><listener-class>com.cdj.test.MyContextLoaderListener</listener-class></listener>
?
? ? ? 需要使用ApplicationContext对象的时候只要使用SystemApplicationContext.getContext();方法即可。