手把手教你整合最优雅SSM框架
- 格式:docx
- 大小:309.98 KB
- 文档页数:30
ssm框架(SpringSpringmvcMybatis框架)整合及案例增删改查三⼤框架介绍ssm框架是由Spring springmvc和Mybatis共同组成的框架。
Spring和Springmvc都是spring公司开发的,因此他们之间不需要整合。
也可以说是⽆缝整合。
mybatis公司开发的mybatis,因为需要和Spring整合,但是他们之间是有缝的。
因此mybatis公司就做出了jar包 mybatis-spring的核⼼整合包。
Q:什么叫⽆缝整合,有缝整合?A:最⽅便的理解就是有Jar包就是有缝,没有jar包就是⽆缝。
整合准备条件三个⽂件:applicationContext.xml springmvc.xml mybatis.xml (名字⼀般都这样起,因为我们还需要对他们进⾏配置,需要⽤⽂件名,同时也能让其他⼈明⽩)下图是项⽬的架构图applicationContext.xml配置⽂件⾥⾯包含数据源的读取properties,配置dataSource,事务管理对象transactionManager、sqlsession⼯⼚SqlSessionFactory 以及Mapper扫描(xml名和接⼝名相同)。
主要负责与mybatis整合<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context" xmlns:p="/schema/p"xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-4.0.xsd/schema/context /schema/context/spring-context-4.0.xsd/schema/aop /schema/aop/spring-aop-4.0.xsd /schema/tx /schema/tx/spring-tx-4.0.xsd /schema/util /schema/util/spring-util-4.0.xsd"><!-- 配置读取properties⽂件 jdbc.properties --><context:property-placeholder location="classpath:jdbc.properties" /><!-- 配置数据源 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${ername}" /><property name="password" value="${jdbc.password}" /></bean><bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><tx:annotation-driven transaction-manager="transactionManager"/><!-- 配置SqlSessionFactory --><bean class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 设置MyBatis核⼼配置⽂件 --><property name="configLocation" value="classpath:sqlMapConfig.xml" /><!-- 设置数据源 --><property name="dataSource" ref="dataSource" /></bean><!-- 配置Mapper扫描 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 设置Mapper扫描包 --><property name="basePackage" value="cn.tsu.ssm.dao" /></bean></beans>Springmvc.xml主要负责注解,springmvc的三⼤组件(处理器映射器、处理器适配器、视图解析器,这三个有默认的类,但是已经过时了。
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对象)映射成数据库中的记录。
2、开发环境搭建如果需要,参看之前的博文:/zhshulin/article/details/307798733、Maven Web项目创建如果需要,参看之前的博文:/zhshulin/article/details/379217054、SSM整合下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。
这次整合我分了2个配置文件,分别是spring-mybatis.xml,包含spring和mybatis的配置文件,还有个是spring-mvc的配置文件,此外有2个资源文件:jdbc.propertis和log4j.properties。
完整目录结构如下(最后附上源码下载地址,不建议直接使用源码,因为此教程已经有了全部代码):使用框架都是较新的版本:Spring 4.0.2 RELEASESpring MVC 4.0.2 RELEASEMyBatis 3.2.64.1、Maven引入需要的JAR包为了方便后面说的时候不需要引入JAR包,我这里直接给出所有需要的JAR包,这都是基本的JAR包,每个包的是干什么的都有注释,就不再多说了。
pom.xml[html]view plaincopyprint?1.<properties>2.<!-- spring版本号 -->3.<spring.version>4.0.2.RELEASE</spring.version>4.<!-- mybatis版本号 -->5.<mybatis.version>3.2.6</mybatis.version>6.<!-- log4j日志文件管理包版本 -->7.<slf4j.version>1.7.7</slf4j.version>8.<log4j.version>1.2.17</log4j.version>9.</properties>10.11.<dependencies>12.<dependency>13.<groupId>junit</groupId>14.<artifactId></artifactId>15.<version>4.11</version>16.<!-- 表示开发的时候引入,发布的时候不会加载此包 -->17.<scope></scope>18.</dependency>19.<!-- spring核心包 -->20.<dependency>21.<groupId></groupId>22.<artifactId></artifactId>23.<version></version>24.</dependency>25.26.<dependency>27.<groupId></groupId>28.<artifactId></artifactId>29.<version></version>30.</dependency>31.<dependency>32.<groupId></groupId>33.<artifactId></artifactId>34.<version></version>35.</dependency>36.<dependency>37.<groupId></groupId>38.<artifactId></artifactId>39.<version></version>40.</dependency>41.42.<dependency>43.<groupId></groupId>44.<artifactId></artifactId>45.<version></version>46.</dependency>47.48.<dependency>49.<groupId></groupId>50.<artifactId></artifactId>51.<version></version>52.</dependency>53.<dependency>54.<groupId></groupId>55.<artifactId></artifactId>56.<version></version>57.</dependency>58.59.<dependency>60.<groupId></groupId>61.<artifactId></artifactId>62.<version></version>63.</dependency>64.65.<dependency>66.<groupId></groupId>67.<artifactId></artifactId>68.<version></version>69.</dependency>70.<!-- mybatis核心包 -->71.<dependency>72.<groupId></groupId>73.<artifactId></artifactId>74.<version></version>75.</dependency>76.<!-- mybatis/spring包 -->77.<dependency>78.<groupId></groupId>79.<artifactId></artifactId>80.<version></version>81.</dependency>82.<!-- 导入java ee jar 包 -->83.<dependency>84.<groupId></groupId>85.<artifactId></artifactId>86.<version>7.0</version>87.</dependency>88.<!-- 导入Mysql数据库链接jar包 -->89.<dependency>90.<groupId></groupId>91.<artifactId></artifactId>92.<version></version>93.</dependency>94.<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->95.<dependency>96.<groupId></groupId>97.<artifactId></artifactId>98.<version></version>99.</dependency>100.<!-- JSTL标签类 -->101.<dependency>102.<groupId></groupId>103.<artifactId></artifactId>104.<version>1.2</version>105.</dependency>106.<!-- 日志文件管理包 -->107.<!-- log start -->108.<dependency>109.<groupId></groupId>110.<artifactId></artifactId>111.<version></version>112.</dependency>113.114.115.<!-- 格式化对象,方便输出日志 -->116.<dependency>117.<groupId></groupId>118.<artifactId></artifactId>119.<version></version>120.</dependency>121.122.123.<dependency>124.<groupId></groupId>125.<artifactId></artifactId>126.<version></version>127.</dependency>128.129.<dependency>130.<groupId></groupId>131.<artifactId></artifactId> 132.<version></version>133.</dependency>134.<!-- log end -->135.<!-- 映入JSON -->136.<dependency>137.<groupId></groupId> 138.<artifactId></artifactId> 139.<version></version>140.</dependency>141.<!-- 上传组件包 -->142.<dependency>143.<groupId></groupId> 144.<artifactId></artifactId> 145.<version></version>146.</dependency>147.<dependency>148.<groupId></groupId>149.<artifactId></artifactId>150.<version>2.4</version>151.</dependency>152.<dependency>153.<groupId></groupId>154.<artifactId></artifactId>155.<version>1.9</version>156.</dependency>157.158.159.</dependencies>4.2、Spring与MyBatis的整合所有需要的JAR包都引入以后,首先进行Spring与MyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:4.2.1、建立JDBC属性文件jdbc.properties(文件编码修改为utf-8)[html]view plaincopyprint?1.driver=com.mysql.jdbc.Driver2.url=jdbc:mysql://10.221.10.111:8080/db_zslername4.password5.6.initialSize7.8.maxActive9.10.maxIdle11.12.minIdle13.14.maxWait4.2.2、建立spring-mybatis.xml配置文件这个文件就是用来完成spring和mybatis的整合的。
SSM三大框架的整合(Spring+SpringMVC+MyBatis)前记:曹孟,崔佳媚和我在11月23日参加了一次关于SSM的比赛,因此对SSM 有点理解,所以在网上搜集了一些关于SSM框架的资料整理出来。
目录SSM三大框架的整合(Spring+SpringMVC+MyBatis) (1)1、基本概念 (2)1.1、Spring (2)1.2、SpringMVC (2)1.3、MyBatis (2)2、整合步骤 (3)2.1、Maven引入需要的JAR包 (3)2.2、Spring与MyBatis的整合 (9)2.3、整合SpringMVC (20)补充一 (29)配置实例演示 (38)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
关于ssm框架的整合步骤1.什么是ssm?ssm指的是springmvc+spring+mybatis,而且这个组合框架是基于mvc架构的。
Springmvc是做控制层的,spring在此中是用来管理业务逻辑层的,mybatis是用来做dao层的。
而架构mvc中的m指的是model,其中包含service,dao以及javabean(pojo),其中v指的是视图,其中的c指的是controller(handler).2.导入的jar包3.ssm框架配置步骤1.从web.xml文件开始不管你用的什么框架,如果你使用的是Tomcat作为服务器,都需要在web.xml中配置一个入口,开启使用的框架,故此,我们先从web.xml文件中开始配置.Spring是springmvc和mybatis依附的对象。
在web.xml中配置spring监听器,配置如下:<!--这个上下文全局参数是给spring监听器使用的--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:application-context.xml</param-value></context-param><!--spring监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>在web.xml中配置springmvc的前端控制器(中央处理器),配置如下:<servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!--加载web.xml配置文件的时候立即实例化--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--/*:拦截所有的请求跳转视图都会拦截比如/WEB-INF/jsp/item.jsp/:拦截所有的请求跳转视图不拦截不过会拦截.css.js.doc ...*.do:拦截.do后缀的请求--><url-pattern>*.do</url-pattern></servlet-mapping>在web.xml中配置请求时中文乱码过滤器,配置如下:<filter><filter-name>encoding</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>encoding</filter-name><url-pattern>*.do</url-pattern></filter-mapping>2.在application-context.xml中的配置<!--所有的配置文件从这里导入--><import resource=”config/*.xml”/>3.在config包中的jdbc.xml<!--配置c3p0连接池--><bean id=”dataSource”class=”boPooledDataSource”> <property name=”driverClass”value=”${driverClass}”/> <property name=”jdbcUrl”value=”${jdbcUrl}”/><property name=”user”value=”${user}”/><property name=”password”value=”${password}”/></bean>4.在config包中的property.xml<!--读取jdbc.properties文件--><!--这种写法不利于扩展--><context:property-placeholder location=”classpath:jdbc.properties”/>使用下面这种配置,有利于扩展<beanclass=”org.springframework.beans.factory.config.PropertyPlaceholderC onfigurer”><property name=”locations”><list><value>classpath:jdbc.properties</value></list></property></bean>5.在config包中的jdbc.properties的配置driverClass = com.mysql.jdbc.DriverjdbcUrl = jdbc:mysql://localhost:3306/mybatis001/?characterEncoding=utf-8user=rootpassword=6.在config包中的annotation.xml的配置<!--扫描包--><context:component-scan base-package=”com.donghua”><context:exclude-filter type=”annotation”expression=”org.springframework.stereotype.Controller”/></context:component-scan>7.在config包中的transaction.xml的配置<!--配置数据源事务注解式开发--><bean id=”transactionManager””class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”> <property name=”dataSource”ref=”dataSource”></property></bean><!--开启注解--><tx:annotation-driven transaction-manager=”transactionManager”/>8.在config包中的mybatis.xml的配置<!--sqlSessionFactory 工厂--><bean id=”sqlSessionFactory”class=”org.mybatis.spring.SqlSessionFactoryBean”> <!--注入数据源--><property name=”dataSource”ref=”dataSource”/><!--配置核心配置文件所在位置--><property name=”configLocation”value=”classpath:mybatis-config.xml”/> </bean><!--Mapper 接口动态代理开发升级扫描--><bean class=”org.mybatis.spring.mapper.MapperScannerConfigurer”> <property name=”basePackage”value=”com.donghua.core.dao”/></bean>9.在mybatis-config.xml中的配置<settings><!--开启懒加载--><setting name=”lazyLoadingEnabled”value=”true”/><!--加载必须的--><setting name=”aggressiveLazyLoading”value=”false”/><!--开启二级缓存--><setting name=”cacheEnabled”value=”true”/></settings><!--为类类型启别名为的是简化书写--><typeAliases><package name=”com.donghua.core.po”/></typeAliases>10.在springmvc.xml中的配置<!--扫描--><context:component-scan base-package=”com.donghua” use-default-filters=”false”><context:include-filter type=”annotation”expression=”org.springframework.stereotype.Controller”></context:component-scan><!--视图解释器--><bean id=”jspViewResolver”class=”org.springframework.web.servlet.view.InternalResourceViewResolver”> <property name=”prefix”value=”/WEB-INF/jsp/”/><property name=”suffix”value=”.jsp”/></bean><!--注解式处理器映射器和处理器适配器--><mvc:annotation-driven conversion-service=”conversionService”validator=”validator”/><!--校检--><bean id=”validator”class=”org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.”><property name=”providerClass”value=”org.hibernate.validator.HibernateValidator”/></bean><!--日期转换器--><bean id=”conversionService”class=”org.springframework.format.support.FormattingConversionServiceFactoryBe an”><property name=”converters”><list><beanclass=”mon.convertion.CustomConverterDate”/></list></property></bean><!--上传图片id="multipartResolver"通过此名找到MultiPartFile接口的实现类--><bean id=”multipartResolver”class=”monsMultipartResolver”> <!--设置文件上传大小默认单位 B要求 1M--><property name=”maxUploadSize”value=”1048576”/></bean>11.在springmvc.xml中配置全局异常处理需要自定义一个异常处理类,例如:然后在 springmvc.xml 中,配置一个该类的 bean12.在springmvc.xml中配置校验第 1 步:导入必须的 jar 包第 2 步:在 javabean 上打注解第 3 步:生成分组的接口第 4 步:在 springmvc.xml 文件中配置<!--注解式--><mvc:annotation-driven conversion-service="conversionService"validator="validator"/><!--校验--><bean id="validator"class="org.springframework.validation.beanvalidation. LocalValidatorFactoryBean"><property name="providerClass"value="org.hibernate.validator.HibernateValidator"/> <!--指定信息保存位置--><property name="validationMessageSource"ref="messageSource"/></bean><!--读取message.properties文件的类--><bean id="messageSource"class="org.springframework.context.support.Reloadable ResourceBundleMessageSource"><!--资源文件名--><property name="basenames"><list><value>classpath:message</value></list></property><!--资源文件编码格式--><property name="fileEncodings"value="utf-8"/><!--对资源文件缓存时间,单位秒--><property name="cacheSeconds"value="120"/> </bean>第5步:编写message.properties文件itemsNameSize=\u8BF7\u8F93\u51651-5\u4E4B\u95F4\u7684\u6570itemsName=\u4E0D\u4E3A\u7A7A13.当springmvc的前端控制器的接收的请求是/时的配置在 web.xml 中的配置如下,给 springmvc 前端控制器添加的另外一个映射路径:<servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>也要也中文乱码过滤器,配置添加一个新的过滤映射路径<filter-mapping><filter-name>encoding</filter-name><url-pattern>/</url-pattern></filter-mapping>我们需要让springmvc的前端控制器不拦截.css.js..doc...在springmvc.xml中的配置如下:14.在springmvc.xml中配置拦截器<!--springmvc拦截器--><mvc:interceptors><mvc:interceptor><!--设置拦截规则--><mvc:mapping path="/*/**"/><!--拦截器类--><beanclass="mon.interceptor.CustomInterceptor"></bean> </mvc:interceptor></mvc:interceptors>。
SSM框架⼊门——整合SSM并实现对数据的增删改查功能(Eclipse平台)⼀、搭建框架环境整个项⽬结构如下:搭建SSM步骤如下:(1)准备好三⼤框架的jar包,如图所⽰(2)在Eclipse中创建⼀个web project ,并把这些jar包粘贴到lib⽂件夹中。
(3)在src⽂件夹下⾃⼰创建⼀个连接数据库的⽂件,命名为db.properties,如图1-2所⽰接着在db.properties中配置⼀下信息:1.登录数据库账号2.登录数据库密码3.数据库连接驱动4.数据库链接地址具体代码实例如下:user=rootpassWord=123456driverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/test1(4)在src⽂件夹下⾃⼰创建⼀个Spring框架的配置⽂件,命名为application.xml,如图1-3所⽰配置代码如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd"><!-- c3p0连接池 --><context:property-placeholder location="classpath:db.properties"/><!--所有带${}⾥⾯写的内容实在db.properties⽂件中起的名字。
SSM框架——详细整合教程下面是一个详细的SSM框架整合教程:1. 创建Maven项目:使用Maven可以方便地管理项目依赖。
在创建项目时,选择Maven项目模板,并配置好项目的基本信息。
2. 引入SSM框架依赖:在项目的pom.xml文件中添加以下依赖:```xml<dependencies><!-- Spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.2.RELEASE</version></dependency><!-- SpringMVC依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.2.RELEASE</version></dependency><!-- MyBatis依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><!--数据库驱动依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> <version>8.0.19</version></dependency></dependencies>```3. 配置Spring:在src/main/resources目录下创建spring.xml文件,并配置Spring相关的配置信息,如数据库连接池、事务管理器、数据源等。
讲解ssm框架整合(最通俗易懂)⽬录环境1 Mybatis2 Spring 整合 Mybatis3 整合 SpringMVC4 Spring 配置整合⽂件结束环境MySQL 8.0.161 Mybatis1.1 数据库配置⽂件jdbc.driver=com.mysql.cj.jdbc.Driver# 如果使⽤mysql 6+,增加⼀个时区的配置jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=falseername=rootjdbc.password=123456com.mysql.jdbc.Driver 与 com.mysql.cj.jdbc.Driver ?com.mysql.jdbc.Driver 是 mysql-connector-java 5 中的com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6 中的JDBC 连接 mysql 5:url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=falseJDBC 连接 mysql 6:url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&?useUnicode=true&characterEncoding=utf8&useSSL=false1.2 配置 Mybatis<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--配置数据源,交给 spring 去做--><typeAliases><package name="com.fyy.pojo"/></typeAliases><mappers><mapper class="com.fyy.dao.BookMapper"/></mappers></configuration>typeAiases 标签作⽤?其中,<typeAiases>标签的作⽤只是为 Java 类型指定⼀个短的名字,它只和xml 配置有关,存在的意义仅在于⽤来减少类完全限定名的冗余。
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean 来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1.2、SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatisMyBatis 本是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(Spring + SpringMVC + MyBatis)是Java Web开发中常用的框架组合,通过整合这三个框架,可以使得开发更加高效、灵活、易于维护。
下面将详细介绍SSM框架的整合步骤。
1.准备工作在开始整合之前,首先需要准备好相关的环境和工具。
确保已经安装了JDK、Tomcat和Maven等工具,并且熟悉基本的Java开发和Web开发知识。
2.创建Maven项目使用Maven创建一个空白的项目作为基础项目。
在项目的pom.xml文件中添加Spring、SpringMVC和MyBatis等相关的依赖。
3.配置Spring在Spring的配置文件中,通过注解或XML的方式进行相关配置。
配置文件主要包含以下内容:-配置数据源,用于连接数据库。
-配置事务管理器,用于管理数据库事务。
- 配置Spring的扫描包,将相关的类自动注入到Spring容器中。
- 配置Spring的AOP(面向切面编程)功能,用于处理事务、日志等公共逻辑。
4.配置SpringMVC在SpringMVC的配置文件中,主要进行以下配置:-配置视图解析器,用于解析并返回视图。
-配置静态资源的处理器,用于处理静态资源文件(如CSS、JS等)。
-配置控制器映射,将请求与相应的控制器方法进行映射。
5.配置MyBatis在MyBatis的配置文件中,主要进行以下配置:- 配置数据源,与Spring的数据源配置保持一致。
- 配置MyBatis的映射文件,将Java对象与数据库表进行映射。
- 配置MyBatis的扫描包,将相关的Mapper接口自动注入到Spring容器中。
6.编写实体类和持久层代码在Java代码中,编写实体类和持久层(DAO)的代码。
实体类用于表示数据库的表结构,持久层代码用于进行数据库的操作。
7.编写服务层和控制器代码在Java代码中,编写服务层(Service)和控制器层(Controller)的代码。
我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能;而且在大部分教学课堂中,也会把SSH作为最核心的教学内容。
但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅。
另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。
好了,如果你也认同我的看法,那么下面我们一起来做整合吧!在写代码之前我们先了解一下这三个框架分别是干什么的?相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码!SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。
举个例子,用户在地址栏输入http://网站域名/login,那么springm vc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只反馈josn/xml等格式数据)。
springmvc就是做前面和后面过程的活,与用户打交道!!Spring:太强大了,以至于我无法用一个词或一句话来概括它。
但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。
另外spring的aop,事务管理等等都是我们经常用到的。
MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。
第一,它能自由控制sql,这会让有数据库经验的人(当然不是说我啦~捂脸~)编写的代码能搞提升数据库访问的效率。
第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。
SSM框架整合配置好了,前面bb那么多,下面我们真正开始敲代码了~首先我们打开IED,我这里用的是eclipse(你们应该也是用的这个,对吗?),创建一个动态web项目,建立好相应的目录结构(重点!)(打了马赛克是因为这里还用不到,你们不要那么污好不好?)我说一下每个目录都有什么用吧(第一次画表格,我发现markdown的表格语法很不友好呀~)这个目录结构同时也遵循maven的目录规范~我先新建好几个必要的包,并为大家讲解一下每个包的作用,顺便理清一下后台的思路~还有最后一步基础工作,导入我们相应的jar包,我使用的是maven来管理我们的jar,所以只需要在poom.xml中加入相应的依赖就好了,如果不使用maven的可以自己去官网下载相应的jar,放到项目WEB-INF/lib目录下。
关于maven的学习大家可以看慕课网的视频教程,这里就不展开了。
我把项目用到的jar都写在下面,版本都不是最新的,大家有经验的话可以自己调整版本号。
另外,所有jar都会与项目一起打包放到我的github上,喜欢的给个star吧~poom.xml?1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839 <code class="language-xml hljs "><project xmlns="/POM/4.0.0" /maven-v4_0_0.xsd"><modelversion>4.0.0</modelversion><groupid>com.soecode.ssm</groupid>ssm</artifactid><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>ssm Maven Webapp</name><url>/liyifeng1994/ssm</url><dependencies><!-- 单元测试 --><dependency><groupid>junit</groupid>junit</artifactid><version>4.11</version></dependency><!-- 1.日志 --><!-- 实现slf4j接口并整合 --><dependency><groupid>ch.qos.logback</groupid>logback-classic</artifactid><version>1.1.1</version></dependency><!-- 2.数据库 --><dependency><groupid>mysql</groupid>mysql-connector-java</artifactid><version>5.1.37</version><scope>runtime</scope></dependency><dependency><groupid>c3p0</groupid>c3p0</artifactid><version>0.9.1.2</version></dependency><!-- DAO: MyBatis -->41424344454647484950515253545556575859606162636465666768697071727374757677787980818283<groupid>org.mybatis</groupid>mybatis</artifactid><version>3.3.0</version></dependency><dependency><groupid>org.mybatis</groupid>mybatis-spring</artifactid><version>1.2.3</version></dependency><!-- 3.Servlet web --><dependency><groupid>taglibs</groupid>standard</artifactid><version>1.1.2</version></dependency><dependency><groupid>jstl</groupid>jstl</artifactid><version>1.2</version></dependency><dependency><groupid>com.fasterxml.jackson.core</groupid>jackson-databind</artifactid><version>2.5.4</version></dependency><dependency><groupid>javax.servlet</groupid>javax.servlet-api</artifactid><version>3.1.0</version></dependency><!-- 4.Spring --><!-- 1)Spring核心 --><dependency><groupid>org.springframework</groupid>spring-core</artifactid><version>4.1.7.RELEASE</version></dependency><dependency><groupid>org.springframework</groupid>spring-beans</artifactid><version>4.1.7.RELEASE</version>858687888990919293949596979899 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 <dependency><groupid>org.springframework</groupid>spring-context</artifactid><version>4.1.7.RELEASE</version></dependency><!-- 2)Spring DAO层 --><dependency><groupid>org.springframework</groupid>spring-jdbc</artifactid><version>4.1.7.RELEASE</version></dependency><dependency><groupid>org.springframework</groupid>spring-tx</artifactid><version>4.1.7.RELEASE</version></dependency><!-- 3)Spring web --><dependency><groupid>org.springframework</groupid>spring-web</artifactid><version>4.1.7.RELEASE</version></dependency><dependency><groupid>org.springframework</groupid>spring-webmvc</artifactid><version>4.1.7.RELEASE</version></dependency><!-- 4)Spring test --><dependency><groupid>org.springframework</groupid>spring-test</artifactid><version>4.1.7.RELEASE</version></dependency><!-- redis客户端:Jedis --><dependency><groupid>redis.clients</groupid>jedis</artifactid><version>2.7.3</version></dependency><dependency><groupid>com.dyuproject.protostuff</groupid><artifactid>protostuff-core</artifactid>128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 <version>1.0.8</version></dependency><dependency><groupid>com.dyuproject.protostuff</groupid> <artifactid>protostuff-runtime</artifactid> <version>1.0.8</version></dependency><!-- Map 工具类 --><dependency><groupid>commons-collections</groupid> <artifactid>commons-collections</artifactid> <version>3.2</version></dependency></dependencies><build><finalname>ssm</finalname></build></project> </code>下面真的要开始进行编码工作了,坚持到这里辛苦大家了~第一步:我们先在spring 文件夹里新建spring-dao.xml 文件,因为spring 的配置太多,我们这里分三层,分别是dao service web 。