Spring整合MyBatis
- 新建maven项目
- 添加对应的jar包(有几个包不是在整合的时间必须的包)
<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>cn.tedu.store</groupId> <artifactId>TeduStore</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- aop面向切面编程的jar包 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.13</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.13</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- spring上传文件依赖的jar包 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <!-- 加密,消息在要 --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> <!-- spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- spring-jdbc (处理事务aop) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.9.RELEASE</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.5</version> </dependency> <!-- mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.2</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!-- commons-dbcp --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- jstl --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 解析bean对象,转换为表示符合json格式的字符串 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.3</version> </dependency>
<dependency> <groupId>com.googlecode.sli4j</groupId> <artifactId>sli4j-slf4j-log4j</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.10</version> </dependency> </dependencies>
</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" version="2.5"> <display-name>TeduStore</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>CharacterEncodingFilter</filter-name> <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-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> |
- 对应的xml配置文件
【spring需要的共同的依赖】
<?xml version="1.0" encoding="UTF-8"?> <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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd"> </beans> |
- mysql(properties)属性配置文件
url=jdbc:mysql://localhost:3306/tedustore?useUnicode=true&characterEncoding=utf8 driverClassName=com.mysql.jdbc.Driver username=root password= |
- Application-dao.xml中的配置(不完全是整合时需要的配置,还有其他的配置)
<!-- 配置扫描dao层的包 读取数据库属性配置文件 1.id表示读取属性文件的唯一的名字 2.location:表示读取配置文件的为值 3.cslsspath表示类路径下(resoures文件夹) --> <util:properties id="dbConfig" location="classpath:db.properties"></util:properties> <!--#{dbConfig.driverClassName} 表示Spring的表达式语法 --> <bean id="dbDriver" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="#{dbConfig.driverClassName}"></property> <property name="url" value="#{dbConfig.url}"></property> <property name="username" value="#{dbConfig.username}"></property> <property name="password" value="#{dbConfig.password}"></property> </bean> <!-- spring和mybatis整合 --> <!-- 扫描持久层的包 --> <bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.tedu.store.mapper"></property> </bean> <!-- SqlSessionFactoryBean --> <bean id="factoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 依赖注入dataSource --> <property name="dataSource" ref="dbDriver"></property> <!-- 配置映射文件 --> <property name="mapperLocations" value="classpath:mappers/*.xml"></property> </bean> <!-- 配置事物管理器 (切面)--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dbDriver"></property> </bean> <!-- 注解驱动,处理事物 --> <tx:annotation-driven transaction-manager="transactionManager"/> |
- Application-service.xml配置
<!-- 扫描注解 --> <context:component-scan base-package="cn.tedu.store.service"/> <!-- 读取md5加密的属性文件 --> <util:properties id="md5" location="classpath:dm5pwd.properties"/> |
- application-aop.xml的配置(面向切面编程的的配置)
<!-- 注解扫描 --> <context:component-scan base-package="cn.tedu.store.aop"/> <!-- 配置自动代理 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> |
- Spring-mvc的配置
<!-- 注解扫描 --> <context:component-scan base-package="cn.tedu.store.controller"/> <!-- 配置视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- Prefix:表示设置前缀 Suffix:表示设置后缀 响应的视图:prefix+hello+suffix(/WEB-INF/web/hello.jsp) --> <property name="prefix" value="/web/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- mvc的注解驱动,有下面的注解,功能会比较强大 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 配置文件的方式处理异常 --> <!-- <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> key表示定义异常类型 error是页面 <prop key="java.lang.RuntimeException">error</prop> </props> </property> </bean> --> <!-- 拦截器的配置 --> <mvc:interceptors> <mvc:interceptor> <!-- path表示拦截路径,如果是拦截所有写/** exclude-mapping 表示不拦截的请求 mapping 表示拦截所有 --> <mvc:mapping path="/user/*"/> <!-- exclude-mapping 表示不拦截的URL请求 --> <mvc:mapping path="/user/*"/> <mvc:mapping path="/address/*"/> <mvc:mapping path="/cart/*"/> <mvc:exclude-mapping path="/user/showLogin.do"/> <mvc:exclude-mapping path="/user/checkUsername.do"/> <mvc:exclude-mapping path="/user/checkEmail.do"/> <mvc:exclude-mapping path="/user/checkPhone.do"/> <mvc:exclude-mapping path="/user/register.do"/> <mvc:exclude-mapping path="/user/login.do"/> <mvc:exclude-mapping path="/user/showRegister.do"/> <!-- 实例化拦截器对象 --> <bean class="cn.tedu.store.interceptor.LoginInteceptor"/> </mvc:interceptor> </mvc:interceptors> <!-- 实现文件上传功能的解析器 --> <bean id="MultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的大小:单位是bytes 10mb--> <property name="maxUploadSize" value="10000000"/> <!-- 设置编码格式 --> <property name="defaultEncoding" value="utf-8"/> </bean> |
- Log4j的配置文件(此文件是在src项目路径下)
log4j.rootLogger=error,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=/home/soft01/log/log.log log4j.appender.R.Append=true log4j.appender.R.Threshold=error log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n |
- 关于md5加密的属性配置文件(任意配置,读取加载可以使用就行)