您的位置:首页 > 其它

web容器启动时候初始化数据以及普通类注入

2012-05-27 01:09 429 查看
web容器启动时候初始化数据,需要在web.xml中加入自己的配置

1.Listener方式

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 要在spring的ContextLoaderListener后边 -->
<listener>
<listener-class>cn.xue.init.XueInitListener</listener-class>
</listener>
public class XueInitListener implements ServletContextListener{
public void contextInitialized(ServletContextEvent sce) {
WebApplicationContext applicationContext =  WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
ReviewActivityManager reviewActivityManager=(ReviewActivityManager)applicationContext.getBean("reviewActivityManager");
List<ReviewActivity> list = reviewActivityManager.getAll(ReviewActivity.class);
for(ReviewActivity reviewActivity:list){
ReviewActivity ra=new ReviewActivity();
ra.setName("999"+reviewActivity.getName());
try {
reviewActivityManager.saveOrUpdate(ra);
} catch (CommonException e) {
e.printStackTrace();
}
System.out.println(reviewActivity.getName());
}
}
public void contextDestroyed(ServletContextEvent sce) {

}
}


2.servlet方式,同时普通类作为bean注入

<servlet>
<servlet-name>initial</servlet-name>
<servlet-class>cn.xue.init.InitialServlet</servlet-class>
<!-- 值最好大些,因为spring的ContextLoaderListener初始化完 -->
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>initial</servlet-name>
<url-pattern>/InitialServlet</url-pattern>
</servlet-mapping>


application.xml

<bean id="schedulerManager" class="cn.xue.init.SchedulerManager"/>


//Spring启动完成后执行初始化操作(@Component符号组件可以用在任何层)
@Component("initial")
public class InitialServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public InitialServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
@Override
public void init(ServletConfig config) throws ServletException {
try {
WebApplicationContext applicationContext =  WebApplicationContextUtils.getWebApplicationContext(config.getServletContext());
ReviewActivityManager reviewActivityManager=(ReviewActivityManager)applicationContext.getBean("reviewActivityManager");
List<ReviewActivity> list = reviewActivityManager.getAll(ReviewActivity.class);
for(ReviewActivity reviewActivity:list){
ReviewActivity ra=new ReviewActivity();
ra.setName("888"+reviewActivity.getName());
reviewActivityManager.saveOrUpdate(ra);
System.out.println(reviewActivity.getName());
}
SchedulerManager schedulerManager=(SchedulerManager)applicationContext.getBean("schedulerManager");
schedulerManager.add();
} catch (CommonException e) {
e.printStackTrace();
}
}
}


//(@Component符号组件可以用在任何层)
@Component("schedulerManager")
public class SchedulerManager {
private ReviewActivityManager reviewActivityManager;
//注入必须要有@Autowired
@Autowired
public void setReviewActivityManager(ReviewActivityManager reviewActivityManager) {
this.reviewActivityManager = reviewActivityManager;
}
public void add() throws CommonException{
List<ReviewActivity> list = reviewActivityManager.getAll(ReviewActivity.class);
for(ReviewActivity reviewActivity:list){
ReviewActivity ra=new ReviewActivity();
ra.setName("777"+reviewActivity.getName());
reviewActivityManager.saveOrUpdate(ra);
System.out.println(reviewActivity.getName());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: