一、ssm框架简介

ssm:是Spring、SpringMVC、Mybatis的简称

1、Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

2、Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

3、MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二、ssm框架整合

整合思路:

推荐博客:

导入ssm相关的jar依赖。。。。。

dao层:

使用mybatis框架。创建SqlMapConfig.xml。
创建一个applicationContext-dao.xml
1、配置数据源
2、需要让spring容器管理SqlsessionFactory,单例存在。
3、把mapper的代理对象放到spring容器中。使用扫描包的方式加载mapper的代理对象

service层:
1、配置事务管理(将事物控制在service层)
2、需要把service实现类对象放到spring容器中管理。。

controller层:

1、配置注解驱动
2、配置视图解析器
3、自动扫描controller层

Web.xml:
1、配置spring容器
2、配置Springmvc前端控制器
3、中文乱码过滤器

框架整合:

项目结构目录:

SSM系统架构图解释 ssm框架简述_SSM系统架构图解释

1、导入ssm整合的相关jar包

   

2、spring配置,主要加载配置文件,后期可以配置redis等配置

SSM系统架构图解释 ssm框架简述_ssm_02

集成redis,编写工具类。

参考博客:

SSM系统架构图解释 ssm框架简述_ssm_03

 

3、spring和mybatis整合

配置数据源、SqlSessionFactory等

SSM系统架构图解释 ssm框架简述_xml_04

配置事物管理:

SSM系统架构图解释 ssm框架简述_spring_05

4、spring和springmvc整合

SSM系统架构图解释 ssm框架简述_java_06

 5、以上所有的配置需要交给spring容器管理,需要配置web.xml

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_3_0.xsd"
     id="ssmDemo" version="3.0">
     <display-name>ssmDemo</display-name>
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
     </welcome-file-list>
     <!-- 加载spring容器 -->
     <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>
             classpath*:spring/applicationContext.xml
             classpath*:spring/spring-mybatis.xml
             classpath*:spring/spring-transaction.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>
         <init-param>
             <param-name>forceEncoding</param-name>
             <param-value>true</param-value>
         </init-param>
     </filter>
     <filter-mapping>
         <filter-name>CharacterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
     <!-- 配置springmvc前端控制器 -->
     <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/springMVC.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>
     <!-- 解决ajax跨域 -->
     <filter>
         <filter-name>MyFilter</filter-name>
         <filter-class>com.ssm.index.common.MyFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>MyFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
 </web-app>