PlayJava SSM框架简介

只谈情不闲聊 提交于 2019-12-21 11:38:21

SSM框架

  SSM是Spring + Spring MVC + MyBatis的缩写,是一个继SSH之后目前比较主流的JavaEE框架,适用于搭建各种企业级应用系统。

Spring

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

IoC

  控制反转,即Inversion of Control,利用工厂模式将对象交给容器管理,只需在spring的配置文件中配置相应的bean,然后对其设置相应的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把配置文件中配置好的bean都进行初始化,然后在需要调用的时候把已经初始化好的这些bean分配给调用这些bean的类,因为调用了bean对象的setter方法来注入,所以就不需要再去使用new来实例这些bean了。Spring最认同控制反转的依赖注入(DI)模式。依赖注入,即Dependency Injection,是控制反转的一个具体的方式,当编写一个复杂的Java程序时,此程序的类应该尽可能的独立于其他的Java类来增加这些类可重用性;当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入有助于将这些类粘合在一起,并且在同一时间让它们保持独立。依赖,即两个类之间的关联,类A依赖于类B;注入,即将类B通过IoC注入到类A中。依赖注入可以通过向构造函数传递参数的方式,或者使用setter方法。可以说依赖注入是Spring框架的核心概念。

AOP

  面向切面,即Aspect Oriented Programming,是Spring的特性,和OOP一样是一种编程思想,是对OOP的补充和完善。OOP定义了从上到下的关系,但并未很好地定义从左到右的关系,例如日志功能,日志代码水平地散布在所有对象层次中,但不可影响到所散布的对象的核心功能。如果使用OOP思想来设计,会导致大量代码的重复,从而不利于各个模块的重用。使用AOP,即是将程序中的交叉业务逻辑(比如日志,事务,安全验证,数据缓存等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去,在不改变原有代码的基础上扩展新的功能实现。具体的实现AOP一般分为两种:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“切面”,从而使得编译器可以在编译期间织入有关“切面”的代码。常用的就是利用AOP实现前置通知、后置通知、返回通知、异常通知等。

Spring MVC

  Spring MVC属于Spring Framework产品家族,是一个基于MVC架构,简化的web应用程序开发的框架,原生支持Spring特性,让开发变得非常的简单规范。Spring MVC框架通过实现 模型(Model)— 视图(View)— 控制器(Controller)模式来很好地将数据、业务与展现进行分离。Spring MVC的设计是围绕DispatcherServlet展开的,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的模型和视图,返回的模型和视图都可以不指定,即可以只返回Model或只返回View或都不返回。

MyBatis

  MyBatis是由apache的一个开源项目iBatis演变而来,2010年iBatis项目由apache software foundation迁移到了google code,改名为MyBatis,2013年11月又迁移到Github。MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。简单来说,MyBatis是一个用来管理数据增删改查(CRUD)的框架。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!