如何让spring mvc web应用启动时就执行特定处理
2个回答
展开全部
Asp.Net的应用中通过根目录下的Global.asax,在Application_Start方法中做一些初始化操作,比如:预先加载缓存项对网站热点数据进行预热,获取一些远程的配置信息等等。
Spring-MVC的应用中,要实现类似的功能,主要是通过实现下面这些接口(任选一,至少一个即可)
一、ApplicationContextAware接口
+ View Code
二、ServletContextAware 接口
+ View Code
三、InitializingBean 接口
+ View Code
四、ApplicationListener<ApplicationEvent> 接口
+ View Code
示例程序:
+ View Code
运行时,输出的顺序如下:
1 => StartupListener.setApplicationContext
2 => StartupListener.setServletContext
3 => StartupListener.afterPropertiesSet
4.1 => MyApplicationListener.onApplicationEvent
4.2 => MyApplicationListener.onApplicationEvent
4.1 => MyApplicationListener.onApplicationEvent
注意:onApplicationEvent方法会触发多次,初始化这种事情,越早越好,建议在setApplicationContext方法中处理。
Spring-MVC的应用中,要实现类似的功能,主要是通过实现下面这些接口(任选一,至少一个即可)
一、ApplicationContextAware接口
+ View Code
二、ServletContextAware 接口
+ View Code
三、InitializingBean 接口
+ View Code
四、ApplicationListener<ApplicationEvent> 接口
+ View Code
示例程序:
+ View Code
运行时,输出的顺序如下:
1 => StartupListener.setApplicationContext
2 => StartupListener.setServletContext
3 => StartupListener.afterPropertiesSet
4.1 => MyApplicationListener.onApplicationEvent
4.2 => MyApplicationListener.onApplicationEvent
4.1 => MyApplicationListener.onApplicationEvent
注意:onApplicationEvent方法会触发多次,初始化这种事情,越早越好,建议在setApplicationContext方法中处理。
展开全部
写一个类实现InitializingBean接口,并在application.xml注入bean就行了,
1
2
3
4
5
6
7
8
9
public class InitLoadData implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>init load info");
}
}
配置bean
1
<bean class="xx.xx.InitLoadData"></bean>
1
2
3
4
5
6
7
8
9
public class InitLoadData implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>init load info");
}
}
配置bean
1
<bean class="xx.xx.InitLoadData"></bean>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询