您的位置:首页 > 编程语言 > Java开发

Spring中初始化二

2015-11-30 13:48 405 查看
当在java工程下运行时

一、InitApplicationListener,通过@Component注入到Spring容器,实现ApplicationListener(完成spring中的事件)接口,和ServletContextAware(得到application对象),把初始化的信息方法application中

注意:application只有在web容器运行时才有值

<span style="font-size:18px;">package com.seven.listener;

import javax.servlet.ServletContext;

import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ServletContextAware;

/**
* 用于做初始化工作的spring的事件监听器
* @author Administrator
*
*/
@Component
//注意:对于 ServletContextAware,只有在Web容器中运行时才有值。
public class InitApplicationListener implements ApplicationListener,ServletContextAware{
private ServletContext application;

public void onApplicationEvent(ApplicationEvent event) {
System.out.println("触发了"+event.getClass());

//判断是否属于初始化刷新的事件,如果是,就做初始化工作,其他事件不做初始化
if(event instanceof ContextRefreshedEvent){
System.out.println("做初始化工作--》》");
System.out.println("放到application中"+application);
}
}

public void setServletContext(ServletContext application) {
this.application = application;

}
}
</span>


二测试类

<span style="font-size:18px;">package com.seven.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.seven.action.TestAction;
import com.seven.service.UserService;

public class UserServiceTest {
@Test
public void testApplicationContext(){
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
ac.refresh();
ac.close();
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: