SSM介绍
什么是SSM框架
SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。
SSM框架各层介绍
2.1、持久层(Mybatis):Dao层(mapper)
DAO层:DAO层主要是做数据持久层的⼯作,负责与数据库进⾏联络的⼀些任务都封装在此。
DAO层的设计⾸先是设计DAO的接⼝。
然后在Spring的配置⽂件中定义此接⼝的实现类。
然后就可在模块中调⽤此接⼝来进⾏数据业务的处理,⽽不⽤关⼼此接⼝的具体实现类是哪个类,显得结构⾮常清晰。
DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置⽂件中进⾏配置。
2.2、业务层(Spring):Service层
Service层:Service层主要负责业务模块的逻辑应⽤设计。
⾸先设计接⼝,再设计其实现的类。
接着再在Spring的配置⽂件中配置其实现的关联。这样我们就可以在应⽤中调⽤Service接⼝来进⾏业务处理。
Service层的业务实现,具体要调⽤到已定义的DAO层的接⼝。
封装Service层的业务逻辑有利于通⽤的业务逻辑的独⽴性和重复利⽤性,程序显得⾮常简洁。
2.3、表现层(springMVC):Controller层(Handler层)
Controller层:Controller层负责具体的业务模块流程的控制。
在此层⾥⾯要调⽤Service层的接⼝来控制业务流程。
控制的配置也同样是在Spring的配置⽂件⾥⾯进⾏,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进⾏ 抽象归纳,设计出可以重复利⽤的⼦单元流程模块,这样不仅使程序结构变得清晰,也⼤⼤减少了代码量。
2.4、视图层:View层
View层:View层与控制层结合⽐较紧密,需要⼆者结合起来协同⼯发。View层主要负责前台jsp页⾯的表⽰。
3、SSM框架各层关系
DAO层、Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独⽴进⾏,这样的⼀种模式在开发⼤项⽬的过程中尤其 有优势。
Controller,View层因为耦合度⽐较⾼,因⽽要结合在⼀起开发,但是也可以看作⼀个整体独⽴于前两个层进⾏开发。这样,在层与层 之前我们只需要知道接⼝的定义,调⽤接⼝即可完成所需要的逻辑单元应⽤,⼀切显得⾮常清晰简单。
Service层是建⽴在DAO层之上的,建⽴了DAO层后才可以建⽴Service层,⽽Service层⼜是在Controller层之下的,因⽽Service层 应该既调⽤DAO层的接⼝,⼜要提供接⼝给Controller层的类来进⾏调⽤,它刚好处于⼀个中间层的位置。每个模型都有⼀个Service 接⼝,每个接⼝分别封装各⾃的业务处理⽅法。
4、SSM原理及流程
客户端发送请求到DispacherServlet(分发器)
由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
Controller调⽤Service业务逻辑层处理后返回结果
Spring
Spring里面的IOC容器和AOP是我们平时使用最多的。
1)IOC(控制反转)
它可以装载bean,也是一种降低对象之间耦合关系的设计思想。(比如租房子。以前租房子需要一个房子一个房子找,费时费力,然后现在加入一个房屋中介,把你需要的房型告诉中介,就可以直接选到需要的房子,中介就相当于spring容器。)
2)AOP(面向切面)
是面向对象开发的一种补充,它允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的需求,如:动态的增加日志、安全或异常处理等。AOP使业务逻辑各部分间的耦合度降低,提高程序可重用性,提高开发效率。
1.横切关注点:从每个方法中抽取出来的同一类非核心业务代码。
2.切面:封装横切信息点的类,每个关注点体现为一个通知方法。
3.通知:切面必须要完成的各个具体工作,也就是切面里的一个个方法。
4.目标:被通知的对象,也就是被通知方法所作用的对象。
5.代理:像目标对象应用通知之后所创建的代理对象。
6.连接点:横切关注点在程序代码中的具体体现,对应用程序执行的某个特定位置。(通俗来讲就是一个个的方法)
7.切入点:切入点就是定位连接点的方式。每个通知上的切入点表达式找到对应的连接点,执行通知之后连接点也就变成了切入点。
2.Spring MVC
1.客户端发送请求到DispacherServlet(分发器)
2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
3.Controller调用业务逻辑处理后,返回ModelAndView
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5.视图负责将结果显示到客户端
3.Mybatis(核心是SqlSession)
mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
要使用 MyBatis,只需将mybatis-x.x.x.jar文件置于类路径(classpath)中即可。
1.引入Mybatis的jar包
2.编写实体类与DAO接口
3.添加主配置文件(配置mysql环境,事务类型,数据源,连接数据库的基本信息,映射文件的位置)
4.添加DAO接口的映射文件(需要指明DAO接口的位置,为每个方法做一个映射)注:所在路径在Resource文件夹下,目录路径需要DAO的层次结构一样
5.使用mybatis框架
使用步骤(所有的xml配置已配置完毕)
1.读取配置文件,可使用mybatis封装的Resources类。
2.创建SQLSessionFactory工厂
3.使用工厂生产SQLsession对象
4.使用SQLSession创建DAO接口的代理对象
5.使用代理对象执行方法
6.提交事务,释放资源
版权归原作者 糊晚 所有, 如有侵权,请联系我们删除。