5
回答
如何让spring容器启动后立即执行我需要的操作??
终于搞明白,存储TCO原来是这样算的>>>   

如何让spring容器启动后立即执行我需要的操作??

因为使用了缓存,想spring容器启动后 把一个数据加载到缓存中。

举报
sunney888
发帖于7年前 5回/12K+阅
共有5个答案 最后回答: 6年前

直接来例子吧:

先写个加载类:

public class CacheLoder{
  public void init(){
    //在这里加载缓存..
  }
}

然后配置一个bean:

<!--注意:lazy-init="false" init-method="init" -->
<bean id="cacheLoder" lazy-init="false" class="CacheLoder" init-method="init" />
--- 共有 1 条评论 ---
CaesireKin厉害。。。 4年前 回复

 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

可以继承这个类,然后自定义启动后的操作

<servlet>   

          <servlet-name>startup</servlet-name>   

          <servlet-class>com.msd.payCenter.commons.InitApp</servlet-class>   

          <load-on-startup>9</load-on-startup>   

      </servlet>

public class InitApp extends ContextLoaderListener{

/**

*/

private static final long serialVersionUID = -4021924214523494989L;

@Autowired

private  static SysConfigUtils sysConfigUtils;

public InitApp(){

super();

//系统参数初始化

System.out.println("sysConfigUtils:"+sysConfigUtils);

System.out.println("====================================系统参数初始化========================================");

sysConfigUtils.onLoadPara();

System.out.println("============================end===========================");

}但SysConfigUtils sysConfigUtils 没有注入到 为NULL;

ContextLoaderListener  中有个contextInitialized方法:

public void contextInitialized(ServletContextEvent event) {
        this.contextLoader = createContextLoader();
        if (this.contextLoader == null) {
            this.contextLoader = this;
        }
        this.contextLoader.initWebApplicationContext(event.getServletContext());

      //自定义初始化

}

顶部