ApplicationContextAware
2016-07-27 11:31
423 查看
spring 中的有一个ApplicationContextAware接口可以帮助我们在自定义的bean中得到spring 应用的上下文(ApplicationContext),只要自定义的bean 实现 这个接口,并重写其setApplicationContext 方法即可。
再结合 @PostConstruct 注解可以bean 初始化时运用applicationContext自行处理一些逻辑,例如:加载自定义注解等。
启动应用程序加载该bean时即可在init方法中处理自定义的逻辑。
构造函数,setApplicationContext ,init 方法三者的执行顺序为:
构造函数–>setApplicationContext–>init
<!-- 扫描jar包 --> <context:component-scan base-package="com.prcsteel.peanut"/> <bean id="restAppContextAware" class="com.prcsteel.peanut.config.RestAppContextAware"/>
public class RestAppContextAware implements ApplicationContextAware { private static final Logger logger = LoggerFactory.getLogger(RestAppContextAware.class); private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } }
再结合 @PostConstruct 注解可以bean 初始化时运用applicationContext自行处理一些逻辑,例如:加载自定义注解等。
public RestAppContextAware() { logger.info("初始化构造函数"); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; logger.info("在初始化 RestAppContextAware 得到应用上下文 {}",this.applicationContext.toString()); } @PostConstruct public void init(){ logger.info("在初始化 RestAppContextAware 之前,运用 {}处理一些逻辑",this.applicationContext); } @PreDestroy public void destroy(){ logger.info("在销毁 RestAppContextAware 之前,运用 {}处理一些逻辑",this.applicationContext); }
启动应用程序加载该bean时即可在init方法中处理自定义的逻辑。
构造函数,setApplicationContext ,init 方法三者的执行顺序为:
构造函数–>setApplicationContext–>init
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总
- Spring MVC中Ajax实现二级联动的简单实例
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题