SSM框架是
Spring
、SpringMVC
、和mybatis
框架的整合,是标准的MVC模式。
标准的SSM框架有四层,分别是DAO层,service层,controller层和view层。
分工:
使用spring实现业务对象管理。(提供了IoC功能)
使用spring MVC负责请求的转发和视图管理。(提供了Web开发功能)
mybatis作为数据对象的持久化引擎。(实现了JDBC)
我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是一个开源框架,有着活跃而庞大的社区,这就是它之所以能长久不衰的原因。Spring 支持广泛的应用场景,它可以让 Java 企业级的应用程序开发起来更简单。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。
IoC是什么?
IoC(Inversion of Control)翻译成中文是“控制反转”的意思。
Spring 是一个 IoC(控制反转)容器,重点还在“容器”二字上,那么它就具备两个最基础的功能:将对象存入到容器
、从容器中取出对象
。
也就是说学 Spring 最核心的功能,就是学如何将对象存入到 Spring 中,再从 Spring 中获取对象的过程。
举个例子:
正向控制:自己造、自己用,自给自足的生产模式。
控制反转:看需要什么、(不考虑如何构造对象)、直接让Spring容器帮我们注入进来
DI是什么?
DI(Dependency Injection)翻译成中文是“依赖注入”的意思。
所谓依赖注入,就是在 IoC 容器在运行期间,动态地将某种依赖关系注入到对象之中。所以,依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情,就是指通过引入 IoC 容器,利用依赖关系注入的方式,实现对象之间的解耦。
IoC 是“目标”也是一种思想,而目标和思想只是一种指导原则,最终还是要有可行的落地方案,而 DI 就属于具体的实现。
AOP(Aspect-Oriented Programming,
面向切面编程
)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可扩展性和可维护性。
Spring AOP是基于动态代理
的,如果要代理的对象实现了某个接口,那么Spring AOP就会使用JDK动态代理去创建代理对象;而对于没有实现接口的对象,就无法使用JDK动态代理,转而使用CGlib动态代理生成一个被代理对象的子类来作为代理。
优点:
· 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式·弥补了面向对象编程(OOP)的不足。
· 利用AOP对业务逻辑的各个部分进行隔离,降低业务逻辑的耦合性,提高程序的可重用型和开发效率。
· 主要用于对同一对象层次的公用行为建模
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的
轻量级框架
。
它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。
另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
实际上SpringBoot
就是Spring
下的一个子工程,是对Spring
的优化,没必要过于区分。
·
快速集成框架
,Spring Boot提供了添加依赖的功能,用于秒集成各种框架;
· 内置运行容器,无需再配置Tomcat
等Web容器,可以直接运行和部署程序;
·快速部署项目
,不需要外部容器就可以启动并运行项目;
· 可以抛弃繁琐的XML
,使用注解和配置的方式进行开发;
· 支持更多的监控指标
,可以更好的了解项目的运行情况;
· 创建SpringBoot项目都需要拉取相对应版本的目录,而这是需要去国外源进行拉取的,因此很容易会拉取失败导致
项目创建失败
http://start.spring.io/。另外也是可以配置国内源的,但是国内源的版本一般比较低https://start.aliyun.com/。
· SpringBoot的版本升级是非常快
的,最快的话几天就会迭代一个版本,因此需要使用一个相对稳定的版本才可以;
· 由于不用自己做配置(如果自己配置又会很麻烦),因此报错时很难定位
。
总结:
提示:这里对文章进行总结:
以上就是今天的学习内容,本文是JavaEE的学习,先认识比较常见的SSM框架的构成,认识了Spring、SpringBoot,它们分别有何优点。之后的学习内容将持续更新!!!