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

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());
		}
	}	
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值