Spring初体验
关键字
java行业标准
万能胶
生态
简化开发的四个策略
-
基于POJO的轻量级和最小侵入性编程。
-
通过依赖注入和面向接口松耦合。
-
基于切面和惯性进行声明式编程。
-
通过切面和模板减少样板式代码。
Spring中的编程思想
Spring思想 | 应用场景(特点) | 概括 |
---|---|---|
OOP | Object Oriented Programming(面向对象编程)用程序归纳总结生活中一切事务 | 封装、继承、多态 |
BOP | Bean Oriented Programming(面向Bean编程)面向Bean(普通Java类)设计程序,解放程序员 | 一切从Bean开始 |
AOP | Aspect Oriented Programming(面向切面编程)找出多个类中有一定规律的代码,开发是拆开,运行时再合并,面向切面编程,既面向规则编程 | 解耦,专人做专事 |
IOC | Inversion of Control(控制反转)将new对象的动作交给Spring管理,并由Spring保存已创建的对象(IOC容器) | 转交控制权(控制反转) |
DI/DL | Dependency Injection(依赖注入)或者Dependency Lookup(依赖查找)依赖注入、依赖查找,Spring不仅保存自己创建的对象,而且还保存对象与对象之间的关系,注入即赋值,主要三种方式构造方法、set方法、直接赋值 | 自动赋值 |
AOP、IoC、DI之间的关系
Spring注解编程发展历史
v1.x
-
@Transactional
-
@ManageResource
V2.0
-
@Required
-
@Repository
-
@Aspect
V2.5
-
@Service
-
@Controller
-
@RequestMapping
-
@ModelAttribute
-
@Resource
3.x
-
@Configuration
-
@Component
-
@ComponetScan
4.x
-
@Condition
-
@ComponetScans
-
@EventListener
5.x
- (全面注解编程 作为Spring Boot 2.0底层支持)基摆脱xml配置
Spring系统架构核心模块
模块名称 | 主要功能 |
---|---|
spring-core | 依赖注入IoC与DI的最基本实现 |
spring-beans | Bean工厂与Bean的装配 |
spring-context | 定义Spring的Context上下文即IoC容器 |
spring-context-support | 对IoC容器的扩展支持,以及IoC子容器 |
spring-context-indexer | Spring的类管理组件和Classpath扫描 |
spring-expression | Spring语言表达式 |
spring-aop | 面向切面编程的应用模块,整合Asm、CGLIB、JDKProxy |
spring-aspects | 集成AspectJ、AOP应用框架 |
spring-instrument | 动态Class loadin模块 |
Spring数据访问与集成模块
模块名称 | 主要功能 |
---|---|
spring-jdbc | Spring提供的JDBC抽象框架的主要实现模块,用于简化Spring JDBC操作 |
spring-tx | Spring JDBC事务控制实现模块 |
spring-orm | 主要集成Hibernate、Java Persistence API(JPA)和Java Data Objects(JDO) |
spring-oxm | 将Java对象映射成XML数据,或者将XML数据映射成Java对象 |
spring-jms | Java Messaging Service能够发送和接收信息 |
Spring之Web模块
模块名称 | 主要功能 |
---|---|
spring-web | 提供最基础的Web支持,主要建立与核心容器之上,通过Servlet或者Listeners来初始化IoC容器 |
spring-webmvc | 实现了Spring MVC(model view conroller)的Web应用 |
spring-websocket | 主要是与Web前端的全双工通讯的协议 |
spring-webflux | 一个新的非阻塞函数式Reactive Web框架,可以用来建立异步的、非阻塞、事件驱动的服务 |
Spring之通信报文模块
模块名称 | 主要功能 |
---|---|
spring-messaging | 从Spring4开始新加入一个模块,主要职责是为Spring框架集成一些基础的报文传送应用 |
Spring之集成测试模块
模块名称 | 主要功能 |
---|---|
spring-test | 主要为单元测试提供支持 |
Spring之集成兼容模块
模块名称 | 主要功能 |
---|---|
spring-framework-bom | Bill of Materials 解决Spring的不同模块依赖版本不同问题 |
spring各个模块之间的依赖关系
Spring版本命名规则
描述方式 | 说明 | 含义 |
---|---|---|
Snapshot | 快照版 | 尚不稳定,处于开发中的版本 |
Alpha | 内部版 | 严重缺陷基本完成修复,但需要完整的功能测试 |
Beta | 测试版 | 相对Alpha又很大的改进,消除了严重的错误,但还是存在缺陷 |
RC | 终测版 | Release Candidate(最终测试)即将作为正式版本发布 |
Demo | 演示版 | 只集成了正式版部分功能升级,无法升级 |
SP | SP1 | 是service pack的意思,表示升级包 |
Release | 稳定版 | 功能相对稳定,可以对外发行,但有时间限制 |
Trial | 试用版 | 试用版,仅对部分用户使用 |
Full Version | 完整版 | 即正式版,已发布 |
Unregistered | 未注册 | 有功能或时间限制的版本 |
Standard | 标准版 | 能满足正常使用的版本 |
Lite | 精简版 | 只含正式版的核心功能 |
Enhance | 增强版 | 正式版功能优化的版本 |
Ultimate | 旗舰版 | 在标配版升级体验感更好的版本 |
Professional | 专业版 | 针对更高要求功能、专业性更强的使用群体发行的版本 |
Free | 自由版 | 自由免费使用的版本 |
Upgrade | 升级版 | 有功能增强或修复已知bug |
Retail | 零售版 | 单独发售 |
Cardware | 共享版 | 公用许可证(IOS签证) |
LTS | 维护版 | 该版本需要长期维护 |
GA | 正式版 | 代表广泛可用的稳定版(General Availability) |
M | 终测版 | M是Milestone的意思,具有一些全新的功能或具有里程碑意义的版本 |
-
Author
- 盒子先生呀