1.jar包:需要额外的两个
springweb ; spring-webmvc
2.如何创建Ioc容器:
1)非web应用,在main方法中直接使用applicationContext创建
2)在web应用中,在web应用被服务器加载时就创建IOC容器:使用ServletContextListener的contextInitialized方法创建IOC容器
3.在web应用的其他组件中如何访问IOC容器呢
将IOC被创建后,将其放在ServletContext(即application域)的一个属性中
4.Spring 配置文件的名字和位置同样是可配置的
将其配置到当前web应用的初始化参数中
1.项目目录:
persion类:
package com.springjdbc.jdbc.listener;
/**
* Created by 小美女 on 2018/12/8.
*/
public class Persion {
private String userNam;
public void setUserNam(String userNam) {
this.userNam = userNam;
}
public void hello(){
System.out.println("my name is :"+userNam);
}
}
2.pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.spring-04</groupId>
<artifactId>spring-04</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.0.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.6</version>
</dependency>
<!-- DataBase数据库连接 mysql包-->
<!-- 添加对数据库的支持 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.8-dmr</version>
</dependency>
<!-- 添加对数据源的支持 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
<!--spring-web-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
</project>
3.web.xml 配置 Listener
<!-- 配种spring配置文件的名称和位置-->
<context-param>
<param-name>configLocation</param-name>
<param-value>classPath:applicationContext.xml</param-value>
</context-param>
<!--启动IOC 容器的servletContextListener-->
<listener>
<listener-class>com.springjdbc.jdbc.listener.SpringServletContextListener</listener-class>
</listener>
4.编写ServletContextListener
package com.springjdbc.jdbc.listener;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Created by 小美女 on 2018/12/8.
*/
public class SpringServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
//1.创建IOC容器
//获取Spring配置文件的名称和位置
ServletContext servletContext = sce.getServletContext();
String config = servletContext.getInitParameter("configLocation");
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(config);
//2.将Ioc容器放入ServletContext的一个属性中
servletContext.setAttribute("applicationContext",applicationContext);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
5.
编写jsp:
6.web.xml 配置servlet:
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>com.springjdbc.jdbc.listener.SpringServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/springServlet</url-pattern>
</servlet-mapping>
7.测试 链接
输出
二:
第二种方法是使用SpringContextListener:
1.web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--启动IOC容器的ServletContextListener-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.写测试jsp
3.访问页面输出: