pragmatic-java-engineer
  • 引言
  • 第一章 后端技术导言
    • 1.1 后端基础设施
    • 1.2 Java后端技术概览
    • 1.3 如何学习后端技术
  • 第二章 Java项目工程化
    • 2.1 项目构建
    • 2.2 代码版本控制
    • 2.3 代码质量保证
  • 第三章 开发框架
    • 3.1 依赖注入
    • 3.2 对象关系映射
    • 3.3 日志
    • 3.4 Web MVC
    • 3.5 总结
  • 第四章 Spring
    • 4.1 Spring核心组件
    • 4.2 Spring数据操作框架
    • 4.3 使用Spring Boot快速开发
    • 4.4 Spring常用组件
    • 4.5 总结
  • 第五章 数据存储
    • 5.1 关系型数据库-MySQL
    • 5.2 非关系型数据库
    • 5.3 缓存
    • 5.4 搜索引擎-Elasticsearch
    • 5.5 总结
  • 第六章 数据通信
    • 6.1 RESTful架构风格
    • 6.2 远程过程调用-RPC
    • 6.3 消息中间件
    • 6.4 总结
  • 第七章 Java编程进阶
    • 7.1 Java内存管理
    • 7.2 Java网络编程
    • 7.3 Java并发编程
    • 7.4 Java开发利器
    • 7.5 Java新版本特性
    • 7.6 总结
  • 第八章 性能调优
    • 8.1 调优准备
    • 8.2 性能分析
    • 8.3 性能调优
    • 8.4 总结
  • 第九章 安全技术
    • 9.1 Java加密
    • 9.2 安全HTTP - HTTPS
    • 9.3 Web安全
  • 附录A: 代码构建常用命令
  • 附录B: Git常用命令
  • 附录C: MySQL常用命令
  • 附录D: MongoDB常用命令
  • 附录E: Java调优常用命令
  • 附录F: 如何应对在线故障
  • 附录G: 架构简明指南
Powered by GitBook
On this page

第四章 Spring

Previous3.5 总结Next4.1 Spring核心组件

Last updated 1 year ago

在上一章的IOC以及MVC两节中已经提到了Spring的一部分功能。Spring可以说是Java中用的最为普遍的一个解决企业应用的一站式框架,基本上覆盖了Java开发中各种需要的基础组件。可以说掌握了Spring框架的使用就掌握了Java开发一半甚至更多的技能。

如图所示是截自Spring官方的一张图,可见Spring目前覆盖了很多方面的技术。本来是为了取代重量级的EJB,结果现在也变得越来越庞大,同时也带来了复杂性的显著提高。使用的时候,应该做到全面了解,从而选择其中需要使用的,而不是大而全地都拿来用。而Spring对于这种插拔式的需求支持的也比较好。

Spring中的常用组件,可见下图:

  • Spring必须的组件,包括Bean容器、Context上下文支持、Spring EL以及相关支持工具类库。这些是Spring的基础组件,是其他所有组件依赖的基础。

  • AOP是做日志统一管理、事务管理时需要用到的组件。

  • Spring ORM中提供了对hibernate等orm框架的整合组件。

  • Spring JDBC的JdbcTemplate是在做数据库操作时候经常用到的组件。

  • Spring TX提供了数据库事务管理相关的组件。

  • Spring Web提供了Web开发时用到的诸如Web工具、视图解析器等组件。通常是与Web MVC一起使用。

以上是Spring框架的核心组成,在官方被称为Spring Framework。除此之外,还有几个Spring项目也比较常用。

  • Spring Data:包括Spring Data Redis、Spring Data MongoDB、Spring Data Solr等,是对很多数据存储软件的操作封装。

  • Spring Boot: 是对Spring所有组件的一个集合,旨在简化Spring应用的配置和降低Spring使用的复杂度。

  • Spring Security:提供了权限管理、OAuth开发等基础组件。

需要注意的是本章讲述的Spring版本是4.3.x系列, 是Spring4.x系列的最终功能版本。而Spring最新的5.x版本带了来很多重大的更新,包括对JDK 9、Servlet 4、HTTP 2、JUnit 5以及完整的端到端响应式编程的支持。引入了Router Functions、Spring WebFlux、HTTP/Reactive Streams等组件来简化对非阻塞、事件驱动的网络应用程序的开发。