Spring框架
官方广告
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack( 一站式)轻量级开源框架。
我们为什么需要Spring Framework?
Spring是独特的,它定位的领域是许多其他流行的framework没有的。Spring致力于提供一种方法管理你的业务对象。同时它有可能成为所有企业应用程序的一站式解决方案。
可以只选择需要的模块
Spring 是模块化的项目,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。比如说你刚建立一个项目的时候,你挑选的spring boot + spring data jpa开发项目,jpa是一个持久层的框架,遇到后面你想要做负载均衡的时候,session共享就可以使用spring session。搭建微服务的时候可以使用spring cloud等等,可以看到些为我们开发的过程中会遇到的一些常见问题,都提供了一套解决方案。
概念
Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,它主要是为了解决企业应用开发的复杂性而诞生的。目的就是解决企业应用开发的复杂性。
关于它的特点呢?我们可以提几个关键字出来。
- 轻量级,非侵入性
- 依赖注入
- 面向切面编程
- 容器
- 框架
- 一站式
然后通过它的特点,我们就可以总结数它的优点。 - 低侵入式设计,代码污染极低
- write once,run everywhere
- DI有效地降低了耦合
- AOP提供了通用任务的集中管理。
- orm和dao简化了对数据库访问。
- 高度开放性,并不强制
spring的各个模块作用
核心容器
核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:
- 核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
- Bean 模块提供 BeanFactory,它是一个工厂模式的复杂实现。
- 上下文模块建立在由核心和 Bean 模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。
- 表达式语言模块在运行时提供了查询和操作一个对象图的强大的表达式语言。
数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:
- JDBC 模块提供了删除冗余的 JDBC 相关编码的 JDBC 抽象层。
- ORM 模块为流行的对象关系映射 API,包括 JPA,JDO,Hibernate 和 iBatis,提供了集成层。
- Java 消息服务 JMS 模块包含生产和消费的信息的功能。
- 事务模块为实现特殊接口的类及所有的 POJO 支持编程式和声明式事务管理。
Web
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
- Web 模块提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。
- Web-MVC 模块包含 Spring 的模型-视图-控制器(MVC),实现了 web 应用程序。
- Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
其他
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:
- AOP 模块提供了面向方面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,它实现了应该分离的功能。
- Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。