整合SSM
创建一个 web 项目 |
pom.xml文件
在pom文件里面引入需要的依赖,以及 tomcat 插件
<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.bb</groupId>
<artifactId>mybatis-17-ssm</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.14</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 端口号 -->
<port>8082</port>
<!-- /表示访问路径 省略项目名 -->
<path>/</path>
<!-- 设置编码方式 -->
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5" >
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 全局范围内环境参数初始化 -->
<context-param>
<param-name>contextConfigLocation</param-name> <!-- 参数名称 -->
<param-value>classpath:applicationContext.xml</param-value> <!-- 参数取值 -->
</context-param>
<!--以下配置的加载顺序:先 ServletContext >> context-param >> listener >> filter >> servlet >> spring-->
<!-- spring 监听器 -->
<listener> <!--用来设定Listener接口-->
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- servlet配置 -->
<servlet> <!-- 用来声明一个servlet的数据 -->
<servlet-name>springmvc</servlet-name> <!-- 指定servlet的名称 -->
<!-- 指定servlet的类名称 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 用来定义参数,可以有多个int-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name> <!-- 参数名称 -->
<param-value>classpath:spring-mvc.xml</param-value> <!-- 参数值 -->
</init-param>
</servlet>
<servlet-mapping> <!-- 用来定义servlet所对应的URL -->
<servlet-name>springmvc</servlet-name> <!-- 指定servlet的名称 -->
<url-pattern>/</url-pattern> <!-- 指定servlet所对应的URL -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<!-- 过滤器配置 -->
<!-- 编码过滤器 -->
<!-- 用来声明filter的相关设定,过滤器可以截取和修改一个Servlet或JSP页面的请求或从一个Servlet或JSP页面发出的响应 -->
<filter>
<filter-name>characterEncoding</filter-name> <!-- 指定filter的名字 -->
<!-- 定义filter的类的名称 -->
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param> <!-- 用来定义参数 -->
<param-name>encoding</param-name> <!-- 参数名称 -->
<param-value>UTF-8</param-value> <!-- 参数值 -->
</init-param>
</filter>
<filter-mapping> <!-- 用来定义filter所对应的URL -->
<filter-name>characterEncoding</filter-name> <!-- 指定对应filter的名字 -->
<url-pattern>/*</url-pattern> <!-- 指定filter所对应的URL -->
</filter-mapping>
</web-app>
spring-mvc.xml
需要实现基本功能的配置
- 配置 <mvc:annotation-driven/>
- 配置<context:component-scan base-package=“com.springmvc.controller”/> 配置controller的注入
- 配置视图解析器
mvc:annotation-driver/ 相当于注册了DefaultAnnotationHandlerMapping(映射器)和AnnotationMethodHandlerAdapter(适配器)两个bean.即解决了@Controller注解的使用前提配置。
context:component-scan 对指定的包进行扫描,实现注释驱动Bean定义,同时将bean自动注入容器中使用。即解决了@Controller标识的类的bean的注入和使用。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 自动扫描该包,使SpringMVC认为包下用了@Controller注解的类是控制器 -->
<context:component-scan base-package="com.xie.controller"></context:component-scan>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<span style="white-space:pre"> </span><!-- 前缀和后缀 -->
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 配置映射器与适配器 -->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>
mybatis-cfg.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
</configuration>
applicationContext.xml文件
需要实现基本功能的配置
- 配置 <context:component-scan base-package=“com.xie.service.impl”/> //自动扫描,将标注Spring注解的类自动转化Bean,同时完成Bean的注入
- 加载数据资源属性文件
- 配置数据源 三种数据源的配置方式 http://blog.csdn.net/yangyz_love/article/details/8199207
- 配置sessionfactory
- 装配Dao接口
- 声明式事务管理
- 注解事务切面
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 关联数据属性文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 开启扫描 -->
<context:component-scan base-package="com.xie.service.impl"/>
<!-- 配置数据源 -->
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource" >
<property name="driverClass" value="${driverName}"></property>
<property name="jdbcUrl" value="${url}"></property>
<property name="user" value="${names}"></property>
<property name="password" value="${password}"></property>
</bean>
<!-- 整合mybatis -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactoryBean" >
<!-- 关联数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 关联mybatis的配置文件 -->
<property name="configLocation" value="classpath:mybatis-cfg.xml"/>
<!-- 添加别名设置 -->
<property name="typeAliasesPackage" value="com.xie.pojo"/>
</bean>
<!-- 配置扫描的路径 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name="basePackage" value="com.xie.dao"/>
</bean>
</beans>
需要引入的资源文件
db.properties
# \u5F00\u53D1\u73AF\u5883ƒ
driverName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/123?characterEncoding=utf-8
names=root
password=123456
log4j.properties(配置的日志文件)
# 定义 log 的输出级别
log4j.rootCategory=debug, stdout , R
# 定义日志输出目的地为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# 可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
# 文件达到指定大小的时候产生一个新的文件
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
# 指定输出目录
log4j.appender.R.File=D:\\tools\\logs\\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n