后端系列-Spring框架

50 阅读2分钟

1 Spring特性

  • 非侵入式:基于Spring开发的对象可以不依赖Spring API;
  • 控制反转:IOC(Inversion of Control),对象的创建交给Spring(用户管理Bean转变为框架管理Bean);
  • 依赖注入:DI(Dependency Injection),依赖的对象不需要手动调用 setXX方法去设置,而是通过配置赋值

重点:理解IOC和DI 参考: juejin.cn/post/685740…

  • 面向切面编程 AOP
  • 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期;
  • 组件化:Spring使用简单的组件配置组合成复杂应用。使用XML和Java注解组合这些对象;

2 Spring组件

Core Container

包含Beans模块、Core核心模块、Context上下文、SpEL表达式。 Beans模块:框架基础功能,控制反转和依赖注入 Core核心:封装Spring框架底层,包括资源访问、类型转换和常用工具类 Context上下文模块:在Core和Beans基础上,集成Beans模块功能,添加资源绑定、数据验证、国际化、容器生命周期等; SpEL模块:提供强大表达式语言支持。

Data Access/Integration(数据访问、集成)

包括 JDBC、ORM、OXM、JMS 和 Transactions 模块

  • JDBC模块:提供JDBC的样例模板
  • ORM模块:支持JPA、JDO、Mybatis
  • OXM模块:支持Java Object/XML映射的抽象层实现
  • Transactions 事务模块:支持编程和声明式事务管理。
Web模块

Web 层包括Web、Sevlet、WebSocket和Webflux 组件

  • Web模块:提供web开发集成特性
  • Sevlet模块:提供Spring MVC Web框架实现
  • WebSocket模块:提供简单接口,搭建WebSocket Server
  • Webflux模块:5.x引入的响应式web框架
AOP、Aspects、Instrumentation和Messaging
  • AOP模块:提供面向切面编程实现,例如日志记录、权限控制、性能统计等通用功能;
  • Aspects模块:AOP框架
  • Instrumentation 模块:类工具的支持和类加载器的实现
  • messaging 模块:4.0以后新增消息模块
  • jcl模块:5.0以后新增日志框架模块
Test模块

Spring 支持 Junit 和 TestNG 测试框架