一、Spring简介
1、Spring概览
用来简化Java开发。
一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越做越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题。
Spring(Spring FrameWork)是一个开源框架。是为了解决企业级应用开发的复杂性而创建的,即简化Java开发,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。
bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组件必
须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO(POJO(Plain Ordinary Java
Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称)。
Spring是如何简化Java开发的?为了降低Java开发的复杂性,Spring采取了以下4中关键策略:
- 基于POJO的轻量级和最小侵入性编程;
- 通过依赖注入和面向接口实现松耦合;
- 基于切面和惯例进行声明式编程;
- 通过切面和模板减少样板式代码。
2、环境准备
2.1 jar包下载
官网jar下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/
2.2 Spring结构图
各个模块之间依赖图
3.相关核心的模块说明
spring核心模块
模块名称 | 主要功能 |
spring-core | 依赖注入IOC与DI的最基本实现 |
spring-beans | Bean工厂与Bean的装配 |
sping -context | 定义的基础的Spring的Context上下文以及IOC容器 |
spring-context-support | 对Spring IoC容器的拓展支持、以及IOC子容器 |
spring-expression | Spring表达式语言 |
Spring切面编程模块
模块名称 | 主要功能 |
spring-aop | 面向切面编程的应用模块 |
spring-aspects | 整合AspectJ、AOP应用框架 |
spring-instrument | 动态Class Loading模块 |
Spring之数据访问和继承模块
模块名称 | 主要功能 |
spring-jdbc | Spring提供的JDBC抽象框架的主要实现模块、用于简化Spring JDBC操作 |
spring-tx | SpringJDBC 事务控制实现模块 |
spring-orm | 主要继承Hibernate、Java Persistence API(JPA)和Java Data Object(JDO) |
spring-oxm | 将java对象映射成XML数据、或者将XML数据映射为Java对象 |
spring-jms | Java Messaging Service能够发送和接受信息 |
Spring值Web模块
模块名称 | 主要功能 |
spring-web | 提供了最基本的Web支持、主要建立与核心容器之上、通过Servlet或者 |
Listener来初始化IoC容器 | |
spring-webmvc | 实现了Spring MVC 的Web应用 |
spring-websocket | 主要是与Web前端的全双工通讯的协议 |
Spring测试和通信报文模块
模块名称 | 主要功能 |
spring-test | spring-test 为测试提供支持 |
spring-messaging | 从Spring4开始新加入的一个模块。主要的职责是为Spring框架集成一些基础的报文传送应用 |