ContextLoaderListener自动装配ApplicationContext的配置信息
2016-05-28 16:34
357 查看
一、ContextLoaderListener在Spring中的使用
(1)作用
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。
因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
在ContextLoaderListener中关联了ContextLoader这个类,整个加载配置过程由ContextLoader来完成。
(2)如何部署applicationContext的xml文件
如果在web.xml中不写任何参数配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml;
如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:
(3)web.xml中配置监听器
二、实现ApplicationContextAware接口,获得ApplicationContext对象
加载Spring配置文件时,如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的
public void setApplicationContext(ApplicationContext context) throws BeansException
方法,获得ApplicationContext对象。
(1)配置文件
web.xml下配置listener
(2)实现类
(3)启动项目后,输出Now is ShowTime
(1)作用
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。
因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
在ContextLoaderListener中关联了ContextLoader这个类,整个加载配置过程由ContextLoader来完成。
(2)如何部署applicationContext的xml文件
如果在web.xml中不写任何参数配置信息,默认的路径是/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml;
如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/classes/applicationContext-*.xml </param-value> </context-param>在<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并以“,”号分隔。上面的applicationContext-*.xml采用通配符,比如这那个目录下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等文件,都会一同被载入。
(3)web.xml中配置监听器
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
二、实现ApplicationContextAware接口,获得ApplicationContext对象
加载Spring配置文件时,如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的
public void setApplicationContext(ApplicationContext context) throws BeansException
方法,获得ApplicationContext对象。
(1)配置文件
web.xml下配置listener
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>applicationContext.xml下配置bean
<bean class="com.learn.spring.GetApplicationContext" /> <bean id="Learn" class="com.learn.spring.Learn" />
(2)实现类
package com.learn.spring; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; public class GetApplicationContext implements ApplicationContextAware { @Override public void setApplicationContext(ApplicationContext arg0) throws BeansException { Learn l = (Learn)arg0.getBean("Learn"); l.show(); } }
package com.learn.spring; public class Learn { public void show() { System.out.println("Now is ShowTime"); } }
(3)启动项目后,输出Now is ShowTime
相关文章推荐
- Android开发---摇一摇功能
- AS:Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- Android菜单详解(一)——理解android中的Menu
- Android底层开发之红外遥控驱动移植
- android 蓝牙源码分析
- Android Listview滑动时不加载数据,停下来时加载数据,让App更优
- android 取消标题,程序意外停止
- 解决 android 输入法弹出输入框被遮挡的问题
- Unity拖影效果
- Android中Application类用法
- Android权限适配方案(API 4+)
- Android中更安全的使用AsyncTask
- Android实战第二篇——模仿社交软件探探(一)
- Android客户端性能优化(魅族资深工程师毫无保留奉献)
- android中对线程池的理解与使用
- ORA-12545:Connect failed beacuse target host or object does not exist
- Fragment+ViewPager的简单使用 Android
- iOS itunesconnect 权限分配
- 学习 CocoaPods 那些事儿
- Android中判断当前运行activity名的方法