目录
1、Spring概述
官网地址:https://spring.io/
-
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring 框架来创建性能好、易于测试、可重用的代码。
-
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
-
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
-
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。
-
Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO编程模型来促进良好的编程实践。
Spring理念:让现有技术更容易使用,spring 本身可以比喻为一个大杂烩,是一种融合剂,使用spring整合了现有的框架技术。
-
官网 : http://spring.io/
-
中文文档:https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference
-
官方下载地址 : https://repo.spring.io/libs-release-local/org/springframework/spring/
-
GitHub : https://github.com/spring-projects
2、Spring优缺点
优点:
-
Spring是轻量级框架,可以自由选择使用哪个Spring 模块。
-
对代码的侵入小、应用程序对Spring API 的依赖比较少,也方便整合老旧的项目。
-
通过控制反转 与依赖注入,实现了对象依赖之间的解耦,降低了业务对象替换的复杂性。
-
支持面向切面编程,将业务功能与额外的功能分类,实现高内聚。
-
提供了Spring 容器,统一管理对象的生命周期和配置信息。
-
对主流的开源框架提供了更好的支持,简化开发过程,让程序员更注重关于业务逻辑的开发
缺点:
-
使用了大量的反射机制,比较占用内存,效率不如直接调用高
-
Spring包含了很多组件,使用的组件越多,Spring 的启动会越慢。
-
配置比较复杂,但是之后引入了注解配置,简化了配置过程。
-
启动Spring 的IOC容器,需要依赖第三方的Web 服务器,自身不能启动。
-
使用Spring 做出来的程序,逻辑不清晰,代码不够直观,需要通过查看配置才能理解代码。
-
调试阶段不够直观,不容易定位Bug的问题所在。
3、Spring框架组成
Spring框架由以下几个模块组成
1.Spring Core
Core封装包是框架的最基础部分,提供IOC和依赖注入的特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
2.Spring Context
构建于Core封装包基础上的Context封装包,提供了一种框架式的对象访问方法,有些像JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
3.Spring DAO
DAO(Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适合。
4.Spring ORM
ORM封装包提供了常用的“对象/关系”映射APIs的集成层。其中包括JPA、JDO、Hibernate 和myiBatis。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如期边提到的简单声明性事务管理。
5.Spring AOP
AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供常用的拦截器,提供用户自定义和配置。
6.Spring Web
WEB模块提供对常见框架如Struts1,WEBWORK(Struts2),JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器
7.Spring Web MVC
Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模式代码和Web Form 之间。并且,还可以借助Spring框架的其他特性。
4、Spring Boot与Spring Cloud
Spring Boot 是 spring 的一个快速开发的脚手架,使用Spring Boot 可以快速开发一个单体微服务。
Spring Cloud 是基于 Spring Boot 实现的。
Spring Boot 是一个专注于快速开发,便于集成的单体微服务个体,而Spring Cloud 更加注重的全局的微服务管理框架。
Spring Boot 的配置理念是 约定大于配置, Spring Cloud 很多部分就是基于 Spring Boot 实现的,Spring Cloud 是通过多个 Spring Boot 单体服务组成的,两者之间属于依赖关系。
注:喜欢的朋友可以关注公众号“JAVA学习课堂”方便阅读,内容更丰富哦。