关键词:
1.首先我们得知道什么是SSM?
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。
2.SSM能做什么,能给我们带来什么呢?
Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。
SpringMVC
SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
就像上面所说的,它是什么就决定了它能做什么
3.下面见识一下SSM的魅力吧
3.1 整合思路
- 首先先搭建环境
- 先把spring的配置搭起来
- 用spring整合springmvc
- 用spring整合mybatis
3.2需要的jar包
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>5.1.6</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
</properties>
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>$spring.version</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>$mysql.version</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>$log4j.version</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>$slf4j.version</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>$slf4j.version</version>
</dependency>
<!-- log end -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>$mybatis.version</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
3.3 需要的实体类 com.a.domian
public class Account implements Serializable
private Integer id;
private String name;
private Double money;
3.4 Dao层 com.a.dao
@Repository
public interface AccountDao
@Select("select * from account)
List findAll();
@Insert into account values(#id,#name,#money)
void saveAccount(Account account);
3.5 service层 com.a.service
public interface AccountService()
List findAll();
void saveAccount();
实现类:
@Service
public Class AccountServiceImpl implement AccountService
@Autowired
private AccountDao accountdao;
public List fndAll()
return accountDao.findAll();
public void saveAccount(Account account)
accountDao.saveAccount(account);
3.6 AccountController类 com.a.controller
@Controller
@RequestMapping("/Account")
public class AccountController
@Autowired
private AccountService accountService;
@RequestMapping(path = "/findAll")
public String findAll()
List<Account> list = accountService.findAll();
for (Account account : list)
System.out.println(account);
return "success";
@RequestMapping(path = "/save")
public String saveAccount(Account account)
accountService.saveAccount(account);
return "success";
3.7 Mybatis环境
在resources下配置一个
SqlMapConfig.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>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///ssm"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 使用的是注解 -->
<mappers>
<!-- <mapper class="com.itheima.ssm.dao.AccountDao"/> -->
<!-- 该包下所有的dao接口都可以使用 -->
<package name="com.a.dao"/>
</mappers>
</configuration>
3.8 spring环境
applicationContext.xml
<context:component-scan base-package="com.a.service">
</context:component-scan>
<import resource="SqlMapConfig.xml">
log4j.properties(日志输出)
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=info, CONSOLE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%dISO8601 %-6r [%15.15t] %-5p %30.30c %x - %m
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%dISO8601 %-6r [%15.15t] %-5p %30.30c %x - %m
3.9 SpringMVC环境
web.xml
<!-- 配置前端控制器:服务器启动必须加载,需要加载springmvc.xml配置文件, SpringMVC的容器>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置初始化参数,创建完DispatcherServlet对象,加载springmvc.xml配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 服务器启动的时候,让DispatcherServlet对象创建 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 配置解决中文乱码的过滤器 -->
<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>
在resources下,创建springmvc.xml
context:component-scan base-package="com.a.controller>
</context:component-scan>
<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- JSP文件所在的目录 -->
<property name="prefix" value="/WEB-INF/pages/" />
<!-- 文件的后缀名 -->
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/js/" mapping="/js/**" />
<!-- 开启对SpringMVC注解的支持 -->
<mvc:annotation-driven />
<import resource="applicationContext.xml">
ssm整合快速入门程序
...2003年兴起的一个轻量级的Java开发框架,由RodJohnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。SpringMVC属于SpringFrameWork的后 查看详情
简单易懂:ssm入门级项目整合实例教程+附项目源码(代码片段)
欢迎===关注===点赞===评论,共同学习,共同进步!你的点赞、关注、评论、是我创作的动力!-------希望我的文章对你有所帮助--------目录一、前言二、推荐开发及运行环境三、项目基本... 查看详情
ssm框架整合入门系列——修改-员工的修改(代码片段)
ssm框架整合入门系列——修改-员工的修改修改操作的保存员工数据方法用了put提交方式,这有一个有意思的问题,由于tomcatreqeust.java自身的问题,导致request.getParameter("empNmae")拿不到put方式提交请求体的数据。解决办法,... 查看详情
ssm框架快速整合实例——学生查询(代码片段)
...我前面已经写过几篇文章作为基础和入门介绍了。这里再简单的介绍一下:1.SpringSpring框架是Java应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC(控制反转) 和 A面向切面编程)。Spring框架是... 查看详情
ssm整合快速入门程序
下面我们配置serivce层到项目中1.service包中创建ItemsService.java接口,和service.imp包中创建一个service实现类ItemsServiceImpl.javapackagecn.my.ssm.serive;importjava.util.List;importcn.my.ssm.po.Items;publicinterfaceItemsService{Li 查看详情
ssm框架整合入门系列——总结
完结撒花不论是代码的完成,还是文章的写完都让我筋疲力尽。幸好,对于框架的理解也在一点点的加深,对于项目的构建也有了很大程度的熟悉,而这种项目的纪录让我发现,有时候代码的修改、覆盖会导致很多细节是文章写... 查看详情
ssm框架集-01-详细介绍-入门问题篇
...合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。SSM是标准的MVC模式,将整个系统划分为表现层,controller层,service层, 查看详情
ssm简单整合(代码片段)
...:需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识数据库环境创建一个存放书籍数据的数据库表CREATEDATABASE`ssmbuild`;USE`ssmbuild`;DROPTABLEIFEXISTS`books`;CREATETABLE`books`(`book 查看详情
ssm框架整合入门系列——新增-员工的添加(代码片段)
新增-员工的添加新增-逻辑在index.jsp页面点击“新增”弹出新增对话框去数据库查询部门列表,显示在对话框中用户输入数据,并进行校验jquery前端校验,ajax用户名重复校验,重要数据(后端校验(JSR303),唯一约束)完成保存URI:... 查看详情
ssm简单整合
一、整合步骤:新建项目,创建一个lib目录导入所有的jar包新建一个config目录,设置为资源目录,用于存放配置文件把所有需要的配置文件放到config目录中在web.xml配置加载spring容器新建所有的类和接口进行测试二、具体实施1.新... 查看详情
ssm+ehcachessm简单整合ehcache缓存
z这里只讲ssm整合ehcache缓存,对于还不了解ssm的童鞋,请先浏览ssm整合那篇EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用... 查看详情
javaweb开发入门八(ssm整合)基于intelligidea
ssm整合一、导入相关包 二、开发流程1.写entitypackagecom.eggtwo.euq.entity;importjava.io.Serializable;importjava.math.BigDecimal;importjava.util.Date;publicclassMember{privateintid;publicintgetId(){returnid;}publi 查看详情
ssm框架快速整合的实例-学生查询(代码片段)
SSM框架快速整合实例--学生查询一、快速准备SSM框架即Spring框架、SpringMVC框架、MyBatis框架,关于这几个框架的基础和入门程序,我前面已经写过几篇文章作为基础和入门介绍了。对于这3个框架还不熟悉的同学,可以参考一下几... 查看详情
ssm项目整合springsecurity
SpringSecurity和Shiro的区别:简单来说,Shiro使用比较简单,但SpringSecurity的功能更加强大。Springsecurity是属于Spring家族的,与Spring框架整合的比较贴切,充分利用了Spring框架的一些特性,IOC,AOP等。SSM项目整合SpringSecurity框架:1,... 查看详情
ssm-整合简单配置
...总览: 为了能够让项目跑一个HelloWorld,添加了简单User业务,接下来就看一下配置文件的内容: application.xml<?xmlversion="1.0"encoding="UTF-8" 查看详情
ssm框架整合(新手必备)
...的是出于自己学完了基础的SSM框架以及自己实操完成SSM的整合后,对比网上一大堆的文章写了关于SSM整合的文章,有写的好的也有写的很片面的,于是觉得需要写一篇文章来记录下自己的心得,希望这篇文章适合刚入门的新手去... 查看详情
ssm整合初级简单的增删改查
1.jar包 2.mybatis-config.xm配置文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configura 查看详情
ssm整合简单配置(代码片段)
最近由于系统重装,之前已经写好了的框架都被我删的一干二净,于是自己动手重新搭了个简答的ssm运行环境(java1.8,Tomcat8.5,maven3.5,MySQL6.0) pom.xml<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-in... 查看详情