Spring开发web项目
web项目初始化Spring IOC容器:
当服务启动时,通过监听器初始化一次(Spring-web.jar已经提供)。
需要7个jar:spring-java6个jar+Spring-web.jar。
web项目启动时,会自动加载web.xml,因此在web.xml中加载监听器。(IOC容器初始化)
<!--IOC容器的位置--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/applicationContext.xml</param-value> </context-param> <!--通过监听器初始化一次(Spring-web.jar已经提供)--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
拆分Spring配置文件
将多个配置文件加载:
(1)
<!--IOC容器的位置--> <context-param> <param-name>contextConfigLocation</param-name> <param-value> WEB-INF/applicationContext.xml WEB-INF/applicationContext-Dao.xml WEB-INF/applicationContext-Service.xml WEB-INF/applicationContext-Controller.xml </param-value> </context-param>
(2)推荐
<context-param> <param-name>contextConfigLocation</param-name> <!--加载多个配置文件--> <param-value> WEB-INF/applicationContext.xml WEB-INF/applicationContext-*.xml </param-value> </context-param>
(3)在主配置文件中加载其他文件
<import resource="applicationContext-Controller.xml"/> <import resource="applicationContext-Service.xml"/> <import resource="applicationContext-Dao.xml"/>
servlet容器与ioc容器连接问题。
//在初始化时获取ioc容器中的对象 @Override public void init() throws ServletException { // ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext-Service.xml"); //web项目获取上下文对象 ApplicationContext context= WebApplicationContextUtils.getWebApplicationContext(this.getServletContext()); studentService= (IStudentService) context.getBean("studentService"); }