SSM框架整合
SSM框架整合
学完SSM之后,感觉记忆并不深刻,因此留笔记,以待后用。
1.开发环境搭建
自行百度
2.Java web项目创建
自行百度
3.SSM框架整合
这次整合分成了6个配置文件,分别是applicationContext.xml,jdbc.properties,spring-dao.xml,spring-service.xml,spring-mvc.xml,mybatis-config.xml。

3.1 Maven引入需要的JAR包
pom.xml文件
<!--?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>org.example</groupid>
<artifactid>Easy_Integration</artifactid>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Easy_Integration Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<!--Junit-->
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
<version>4.13</version>
<scope>test</scope>
</dependency>
<!--数据库驱动-->
<dependency>
<groupid>mysql</groupid>
<artifactid>mysql-connector-java</artifactid>
<version>5.1.49</version>
</dependency>
<!--数据库连接池-->
<dependency>
<groupid>com.mchange</groupid>
<artifactid>c3p0</artifactid>
<version>0.9.5.4</version>
</dependency>
<!--dbcp-->
<!--<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>-->
<!--Servlet-JSP-->
<dependency>
<groupid>javax.servlet</groupid>
<artifactid>servlet-api</artifactid>
<version>2.5</version>
</dependency>
<dependency>
<groupid>javax.servlet.jsp</groupid>
<artifactid>jsp-api</artifactid>
<version>2.2</version>
</dependency>
<dependency>
<groupid>javax.servlet</groupid>
<artifactid>jstl</artifactid>
<version>1.2</version>
</dependency>
<!--Mybatis-->
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis</artifactid>
<version>3.5.4</version>
</dependency>
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis-spring</artifactid>
<version>2.0.4</version>
</dependency>
<!--Spring-->
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-webmvc</artifactid>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-jdbc</artifactid>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-beans</artifactid>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-web</artifactid>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-core</artifactid>
<version>5.2.8.RELEASE</version>
</dependency>
<!-- 导入java ee jar 包 -->
<dependency>
<groupid>javax</groupid>
<artifactid>javaee-api</artifactid>
<version>7.0</version>
</dependency>
<!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupid>log4j</groupid>
<artifactid>log4j</artifactid>
<version>1.2.12</version>
</dependency>
<!-- 格式化对象,方便输出日志 -->
<dependency>
<groupid>com.alibaba</groupid>
<artifactid>fastjson</artifactid>
<version>1.1.41</version>
</dependency>
<dependency>
<groupid>org.slf4j</groupid>
<artifactid>slf4j-api</artifactid>
<version>1.7.7</version>
</dependency>
<dependency>
<groupid>org.slf4j</groupid>
<artifactid>slf4j-log4j12</artifactid>
<version>1.7.7</version>
</dependency>
<!-- log end -->
<!-- 映入JSON -->
<dependency>
<groupid>org.codehaus.jackson</groupid>
<artifactid>jackson-mapper-asl</artifactid>
<version>1.9.13</version>
</dependency>
<!-- 上传组件包 -->
<dependency>
<groupid>commons-fileupload</groupid>
<artifactid>commons-fileupload</artifactid>
<version>1.3.1</version>
</dependency>
<dependency>
<groupid>commons-io</groupid>
<artifactid>commons-io</artifactid>
<version>2.4</version>
</dependency>
<dependency>
<groupid>commons-codec</groupid>
<artifactid>commons-codec</artifactid>
<version>1.9</version>
</dependency>
</dependencies>
<build>
<finalname>Easy_Integration</finalname>
<pluginmanagement>
<!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactid>maven-clean-plugin</artifactid>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactid>maven-resources-plugin</artifactid>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactid>maven-compiler-plugin</artifactid>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactid>maven-surefire-plugin</artifactid>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactid>maven-war-plugin</artifactid>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactid>maven-install-plugin</artifactid>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactid>maven-deploy-plugin</artifactid>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginmanagement>
<!--静态资源导出问题-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resource</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<!-- tomcat7插件 -->
<plugin>
<groupid>org.apache.tomcat.maven</groupid>
<artifactid>tomcat7-maven-plugin</artifactid>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
<uriencoding>UTF-8</uriencoding>
<!-- tomcat热部署 -->
<username>shang</username>
<password>123456</password>
<url>http://localhost:8080/manager/text</url>
</configuration>
</plugin>
<!-- jetty插件 -->
<plugin>
<groupid>org.eclipse.jetty</groupid>
<artifactid>jetty-maven-plugin</artifactid>
<version>11.0.1</version>
<configuration>
<webapp>
<contextpath>/</contextpath>
</webapp>
<httpconnector>
<port>8080</port>
</httpconnector>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.2 jdbc属性文件
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/easy_integration?characterEncoding=utf8&useSSL=true&useUnicode=true
jdbc.username=root
jdbc.password=123456
3.3 创建mybatis-config的文件
mybatis-config
<!--?xml version="1.0" encoding="UTF-8" ?-->
<configuration>
<!--配置日志-->
<!--
<settings>
<setting name="logImpl" value="LOG4J"/>
<setting name="cacheEnabled" value="true"/>
<setting name="autoMappingBehavior" value="FULL"/>
</settings>
-->
<!--别名-->
<typealiases>
<package name="com.bean">
</package></typealiases>
<!--<mappers>
<mapper class="com.dao.CommodityMapper"/>
</mappers>-->
</configuration>
3.4 创建spring的文件
spring-dao
<!--?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" xsi:schemalocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--关联数据库文件-->
<context:property-placeholder location="classpath:jdbc.properties">
<!--连接数据源
dbcp:半自动
c3p0:自动化com.mchange.v2.c3p0.ComboPooledDataSource
druid
hikari
-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}">
<property name="jdbcUrl" value="${jdbc.url}">
<property name="user" value="${jdbc.username}">
<property name="password" value="${jdbc.password}">
<!--设置最大连接池大小-->
<property name="maxPoolSize" value="30">
<!--设置最小连接池大小-->
<property name="minPoolSize" value="10">
<!--关闭连接后不自动commit-->
<property name="autoCommitOnClose" value="false">
<!--获取连接超时时间-->
<property name="checkoutTimeout" value="10000">
<!--当获取连接失败重试次数-->
<property name="acquireRetryAttempts" value="2">
</property></property></property></property></property></property></property></property></property></bean>
<!--sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource">
<!--绑定配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml">
</property></property></bean>
<!--配置dao接口扫描包,动态的实现了dao接口注入到spring容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--注入sqlSessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">
<!--value填写的是dao的文件位置-->
<property name="basePackage" value="com.dao">
</property></property></bean>
</context:property-placeholder></beans>
spring-service
<!--?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" xsi:schemalocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--扫描service下的包-->
<context:component-scan base-package="com.service">
<!--声明事务配置-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--注入数据源-->
<property name="dataSource" ref="dataSource">
</property></bean>
<!--aop事务支持-->
</context:component-scan></beans>
spring-mvc
<!--?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!--注解驱动-->
<mvc:annotation-driven>
<!--扫描包-->
<context:component-scan base-package="com.controller">
<!--配置视图解析器 /WEB-INF/jsp/query.jsp -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/">
<property name="suffix" value=".jsp">
</property></property></bean>
<!--静态资源-->
<mvc:default-servlet-handler>
<!--<mvc:resources mapping="/statics/**" location="/statics/"/>-->
<!-- 全局异常处理,仅限于Controller-->
<!-- <com.bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">-->
<!-- 异常的映射-->
<!-- <property name="exceptionMappings">
<props>
<prop key="java.lang.RuntimeException">error</prop>
</props>
</property>
</com.bean>-->
<!-- 用于文件上传-->
<!-- <com.bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxInMemorySize" value="5000000"/>
<property name="defaultEncoding" value="UTF-8"/>
</com.bean>-->
</mvc:default-servlet-handler></context:component-scan></mvc:annotation-driven></beans>
3.5 创建applicationContext.xml文件
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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="spring-dao.xml">
<import resource="spring-service.xml">
<import resource="spring-mvc.xml">
</import></import></import></beans>
3.6 配置web.xml文件
这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合。
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">
<!--配置核心控制器DispatcherServlet-->
<servlet>
<servlet-name>easy_integration</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化springmvc配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>easy_integration</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--乱码过滤-->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--Session-->
<session-config>
<session-timeout>15</session-timeout>
</session-config>
</web-app>

浙公网安备 33010602011771号