1. Spring概览
简化Java开发的。Spring不仅只是一个框架,Spring已经成为了一种生态。(与其说是Java开发,不如说是Spring开发)
一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的依赖关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题。
Spring(Spring Framework) 是一个开源框架,最早由Rod Johnson创建,并在《Expert Oneon-One:J2EE Design and Development》这本著作中进行了介绍。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。
bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组件必须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO(POJO(Plain Ordinary JavaObject)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称)。
Spring 可以做非常多的事情。但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。这是一个郑重的承诺。许多框架都声称在某些方面做
了简化,但Spring的目标是致力于全方位的简化Java开发。这势必引出更多的解释,Spring是如何简化Java开发的?
为了降低Java开发的复杂性,Spring采取了以下4种关键策略:
- 基于POJO的轻量级和最小侵入式编程;
- 通过控制反转和依赖注入以及面向接口实现松耦合;
- 基于切面和惯例进行声明式编程;
- 通过切面和模板减少样板式代码。
2.环境准备
2.1 jar包下载
将下载的dist压缩包解压缩:
2.2 相关核心的模块说明
Spring核心模块
模块名称 主要功能
- spring-core 依赖注入IoC与DI的最基本实现
- spring-beans Bean工厂与Bean的装配
- spring-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 Spring JDBC 事务控制实现模块
- 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容器 - springwebmvc 实现了Spring MVC 的Web应用
- springwebsocket 主要是与Web前端的全双工通讯的协议
Spring测试和通信报文模块
- spring-test 为测试提供支持
- springmessaging 从Spring4开始新加入的一个模块。主要的职责是为Spring框架集成一些基础的报文传送应用
4. Spring的结构图