-
配置一个监听器ContextLoaderListener,这个监听器是ServletContext的监听器
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
-
可选的,设定你的xml配置文件的路径
-
如果文件在web-info 下面,并且名字为applicationContext.xml,就不需要再额外配置
-
如果文件不符合上面的规则,就需要配置context-param、
-
-
利用一个WebApplicationContextUtils来读取第二部创建的ApplicationContext对象
导相关依赖包
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com</groupId> 8 <artifactId>spring-demo</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 13 <dependencies> 14 <dependency> 15 <groupId>org.springframework</groupId> 16 <artifactId>spring-core</artifactId> 17 <version>5.0.2.RELEASE</version> 18 </dependency> 19 <dependency> 20 <groupId>org.springframework</groupId> 21 <artifactId>spring-context</artifactId> 22 <version>5.0.2.RELEASE</version> 23 </dependency> 24 25 <dependency> 26 <groupId>org.springframework</groupId> 27 <artifactId>spring-jdbc</artifactId> 28 <version>5.0.2.RELEASE</version> 29 </dependency> 30 <dependency> 31 <groupId>com.microsoft.sqlserver</groupId> 32 <artifactId>mssql-jdbc</artifactId> 33 <version>6.2.1.jre8</version> 34 </dependency> 35 36 <!-- hibernate --> 37 38 <dependency> 39 <groupId>org.hibernate</groupId> 40 <artifactId>hibernate-core</artifactId> 41 <version>5.2.10.Final</version> 42 </dependency> 43 44 <!-- 下面的依赖里面至少有LocalSessionFactoryBean --> 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-orm</artifactId> 48 <version>5.0.2.RELEASE</version> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework</groupId> 52 <artifactId>spring-beans</artifactId> 53 <version>5.0.2.RELEASE</version> 54 </dependency> 55 <!--Web依赖--> 56 <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> 57 <dependency> 58 <groupId>javax.servlet</groupId> 59 <artifactId>javax.servlet-api</artifactId> 60 <version>3.1.0</version> 61 <scope>provided</scope> 62 </dependency> 63 <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> 64 <dependency> 65 <groupId>org.springframework</groupId> 66 <artifactId>spring-web</artifactId> 67 <version>5.0.1.RELEASE</version> 68 </dependency> 69 70 71 </dependencies> 72 <build> 73 <plugins> 74 <plugin> 75 <artifactId>maven-war-plugin</artifactId> 76 <version>2.2</version> 77 <configuration> 78 <warSourceDirectory>web</warSourceDirectory> 79 </configuration> 80 </plugin> 81 </plugins> 82 </build> 83 </project>
配置web.xml文件
1 <listener> 2 <!--配置一个监听器ContextLoaderListener,这个监听器是ServletContext的监听器--> 3 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 4 </listener> 5 6 <context-param> 7 <!--spring的配置文件路径--> 8 <param-name>contextConfigLocation</param-name> 9 <param-value>classpath:Springweb.xml</param-value> 10 </context-param>
配置Spring的依赖注入:SpringWeb.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 6 7 8 <bean id="dao" class="web.UserDaoImpl"></bean> 9 <bean id="service" class="web.Service"> 10 <property name="userDao" ref="dao"></property> 11 </bean> 12 </beans>
dao接口
1 public interface UserDao { 2 void add(); 3 }
dao实现
1 public class UserDaoImpl implements UserDao 2 { 3 public void add() { 4 System.out.println("aaaaaaaa"); 5 } 6 }
service
1 public class Service { 2 private UserDao userDao; 3 4 public UserDao getUserDao() { 5 return userDao; 6 } 7 8 public void setUserDao(UserDao userDao) { 9 this.userDao = userDao; 10 } 11 public void insert(){ 12 userDao.add(); 13 } 14 }
servlet
1 @WebServlet("/fist") 2 public class Servlet extends HttpServlet { 3 @Override 4 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 5 /* ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Springweb.xml"); 6 Service service = applicationContext.getBean("service",Service.class); 7 service.insert();*/ 8 ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(req.getServletContext()); 9 Service service = applicationContext.getBean("service",Service.class); 10 service.insert(); 11 } 12 }