spring完全启动后想去执行我的初始化程序,怎么搞?
有没有spring listener可以做?高手帮忙

解决方案 »

  1.   

    你继承一下spring的listener不就行了。或者写一个listener配置在spring listener的后面
      

  2.   

    初始化程序一般用servlet的init的方法实现!
    可以配置在spring的启动程序之后。
      

  3.   

    panhaichun :
        继承那个listener 在那add listener?
    humor200 :
        servlet 是多线程执行,如果配置在web config可能出现spring还没启动完,我的初始化程序就已经完成的情况。
      

  4.   

    yys79 :
         数据缓存、系统全局参数。我要访问数据库,所以要spring启动以后获取spring管理的bean.
      

  5.   

    直接写在SPRING里的BEAN,然后注入其它要的BEAN就可以啊。
      

  6.   

    继承这个Listener:
    org.springframework.web.context.ContextLoaderListenerpublic class StartupListener extends ContextLoaderListener implements
    ServletContextListener {
            @Override
    public void contextInitialized(ServletContextEvent event) {        }
    在web.xml文件里加上这个:
            <listener>
    <listener-class>
    com.centit.app.web.StartupListener
    </listener-class>
    </listener>
      

  7.   

    archko ,iampy :
        你们说的都是可以的。可是应该是我没说清楚,呵呵 不好意思。
    我tomcat下配置了struts2 和 spring ,我想当tomcat 成功启动后做我的操作。
    方法放在struts2线程 或spring线程都是不行的,如:放在struts 线程里可能spring没有启动成功;如果放在spring线程里 ActionContext.getContext()可能是null 。
      

  8.   

    ok,ok可以了。
    想想为什么拿ActionContext.getContext()那,event.getServletContext()不是也可以嘛。呵呵  谢谢
      

  9.   

    我用初始化bean的方式:
    @Component
    public class SysInitBean implements InitializingBean,ServletContextAware{
      public void afterPropertiesSet() throws Exception {
         //你的初始化代码
      }
    }实现InitializingBean接口就可以获取spring的所有配置信息。
    实现ServletContextAware,可以获得servletcontext,
    我这是spring2.5用注释的方式,如果是早期版本,就不能用
    @Component注解了,直接在xml里配置这个bean就行了,系统自动调用。