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 单体服务组成的,两者之间属于依赖关系。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/87765.html