基于Maven的SSM整合详解

一、什么是SSM
提到SSM就不得不说到SSH,也就是Struts2+Spring+Hibernate。这是一个非常经典的MVC框架组合。也就是数据层由Hibernate负责,视图层由struts2负责,业务层由Spring负责。但是随着Spring家族的发展,现在另一个非常流行的MVC框架SSM即Spring+SpringMVC+Mybatis也受到越来越多人的重视。这里对这两种组合框架不做评价,只能说业务场景和处理方法都是大同小异。事实上,我们不用框架,用servlet+jsp+JDBC也能写出一个MVC的程序,但是我们追求的是优雅和高效。学习框架可以帮助我们更好的理解MVC的分层和业务逻辑,那么就开始吧。
Spring:很好很强大,常常有人说学完Spring家族就等于学习了整个网络WEB的流行技术。我们平时开发接触最多的估计就是Spring的IOC容器,它可以装载javabean,结合Sping的注解功能,编写的程序优雅至极。有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外还有spring的aop也就是面向切面编程,Spring的事务管理等等都是我们经常用到的。
SpringMVC:它在SSM中用于web层,相当于controller(等价于传统的servlet和struts2中的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc与用户打交道!!
MyBatis:基于xml的数据持久层框架,和Hibernate起的作用相同,负责与数据库进行交互。但是Mybatis的查询语句需要自己进行编写,而Hibernate则是框架自己生成。Mybatis的使用更加灵活,可以结合实际场景进行不同的优化。


二、整合工具
IDE:Eclipse Java EE IDE for Web Developers Version: Neon Release (4.6.0)
JDK:1.8
maven:maven3.3.9
Tomcat:tomcat9


三、创建项目基本架构
使用eclipse创建一个maven web工程,创建如下包和目录


下面来一一介绍每一个包和目录的作用
1、dao(数据访问层)
负责与数据打交道,可以是数据库操作,也可以是文件读写操作,甚至是redis缓存操作,总之与数据操作有关的都放在这里。因为我们用的是mybatis,可以直接在配置文件中实现查询语句,所以没有daoImpl这个包。
2、entity(实体类层)
一般与数据库的表相对应,封装dao层取出来的数据为一个对象,也就是我们常说的pojo,所以也有许多人包这个包直接命名为pojo。一般只在dao层与service层之间来传输。
3、dto(数据传输层)
主要用于service层与web层之间传输。实际开发中,很多时候一个entity并不能满足我们的业务需求,可能呈现给用户的信息十分之多,这时候就有了dto,它可以把多个pojo整合起来。
4、service(业务逻辑抽象层)
主要编写我们的业务逻辑接口。
serviceImpl(业务逻辑实现层)
实现我们业务接口,是事务管理的主要部分。
5、web(控制器)
springmvc就是在这里发挥作用的,主要编写视图逻辑的相关代码。也有人将这个包命名为controller。
这五个包构成了MVC的基本分层。每一层负责不同的逻辑,从而写出非常优雅的代码。
这里还有两个额外的包:
1、enums:顾名思义,这个包里定义了一些枚举类。
2、exception:顾名思义,这个包里定义了一些自定义的异常。

下面来看其他的包和目录
1、mapper目录
存放dao中每个方法对应的sql的xml配置,编写后,无需写daoImpl。
2、spring目录
存放spring相关的配置文件,有dao service web三层。即spring整合Mybatis,Spring和SpringMVC三个配置文件。
3、test包:用来进行单元测试。

建立项目基本目录后,通过pom.xml来引入相关的jar包。这里不得不说,通过maven来配置依赖真是相当的方便啊。
pom.xml文件如下:
<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>com.kang</groupId>
<artifactId>SSM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>


<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>


<!-- 1.日志 -->
<!-- 实现slf4j接口并整合 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>


<!-- 2.数据库 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>


<!-- DAO: MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值