1、前言
前面我们讲到Spring在普通JAVA项目中的一些使用、本文将介绍在普通的Web项目中如何实例化Spring IOC容器。按照一般的思路、如果在Web中实例化Ioc容器、这不得获取Context对象很多次?但其实不是这样的、Spring帮我们想到了这点、利用Spring-Web jar包、创建一个监听器、我们只需要监听Tomcat启动的时候、将Ioc容器实例化即可、这样方便快捷了许多、也省去了许多不必要的麻烦。
1、工具
idea开发版:2019.6--------下载地址
Tomcat: 9版本--------下载地址
Spring jar包: 4.3.9--------下载地址
2、准备工作
1、idea新建一个简单的web项目
注:如果最后一步没弄好、会出现ClassNotFound的异常、因为idea部署的时候没有找到相关的jar包、所以会出现问题。
2、配置Tomcat
3、配置相关的xml文件
1、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
2、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 指定IOC容器的位置 -->
<context-param>
<!-- 监听器的父类ContextLoader中有一个属性contextConfigLocation负责定位-->
<param-name>contextConfigLocation</param-name>
<!-- 文件存在多个时、只需要在内部补充即可、用逗号分隔 -->
<!-- 即applicationContext-*.xml-->
<param-value>applicationContext.xml<param-value/>
</context-param>
<listener>
<!--配置SpringWeb.jar提供的容器,此监听器可以在服务器启动时、初始化Ioc容器
初始化Ioc容器
1、告诉监听器此容器的位置:applicationContext.xml
2、默认约定的位置(WEB-INF内部)
-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>