目录
3.2 Data Access/Integration(数据访问/集成)
1.什么是spring
spring是分层的JavaSE/EE full-stack轻量级开源框架,以IoC(Inverse of Control控制反转)和AOP(Aspect Oriented Programming面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式;
实际开发中,服务器通常采用三层体系架构,分别为表示层(web)、业务逻辑层(Service)、持久层(Dao),spring对每一层都提供了技术支持。
spring并不是取代这些框架,而是对这些框架进行整合,是一站式的开发方向;
2.Spring的优点
spring具有简单、可测试和松耦合等特点。spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中。以下为spring框架七大优点“
- 非侵入式设计;(不要求实现接口)
实现接口就是代码的侵入式设计。
- 方便解耦、简化开发;
spring相当于一个大工厂,可以将所有对对象的创建以及对象的依赖关系,维护工作都可以交给spring来管理,大大降低组建之间的耦合性
- 支持AOP;
可以将安全,事务,日志等代码集中式的来处理,提高代码的复用性,简化代码的开发;
- 支持声明式事务处理;
不用手动写代码去处理事务,只用在spring的配置文件中写一个标签,标签中写属性就可以处理事务。
- 方便程序测试;
spring提供了对juile4的支持,有单独的模块处理
- 方便集成各种优秀框架;
spring是一站式开发方向,并不是取代原本框架,而是将已有的框架进行整合,更好的使用。
- 降低Java EE API的使用难度;
使用Java EE AP难度相对较大,spring对这些API进行了封装 ,简化了代码的编写,提高代码的效率。
3.Spring的体系结构
spring框架采用的是分层架构,它一系列的功能要素被分为20个模块。方便学习这20个模块被分为4个部分;
3.1 Core Container(核心容器)
- 包含四个子模块:Beans、Core、Context、SpEL;
- Beans:提供了BeanFactory,是spring(工厂)的顶层接口,Spring将管理对象称为Bean。
- Core:Spring框架的基本组成部分,包括IoC和DI功能;
- Context:上下文模块,建立在Core和Beans模块的基础之上,是访问定义和配置的任何对象的媒介;
- SpEL:spring的表达式语言,spring3.0后新增模块,是运行时查询和操作对象图的强大的表达式语言;
3.2 Data Access/Integration(数据访问/集成)
主要介绍JDBC,ORM,Transactions
- JDBC:并不是Java中的JDBC,而是spring中对Java中JDBC的一个抽象层的封装,大幅度的减少的在开发过程中对数据库操作的编码;
- ORM:对流行的对象关系的映射API,包括JPA、JDO和Hibernate提供了集成层的支持。
- OXM:XML;
- JMS:Java的消息服务;
- Transactions:支持对实现特殊接口以及所有POJO类的编程和声明式服务的事务管理;
3.3 Web
主要介绍Web,Servlet;
- Servlet:做web开发一定要有的模块;也称Spring-webmvc模块,包含Spring模型——视图——控制器(MVC)和RESTWeb Services实现的Web程序;
- Web:提供了基本的Web开发的集成特性,如:多文件上传、使用Sevlet监听器来初始化IoC容器以及Web应用上下文;
- Portlet:类似于Servlet模块;
3.4 其他模块
- AOP:提供面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性;
- Aspects:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向切面编程(AOP)框架。
- Instrumentation:工具类和类加载器的实现;
- Messaging:spring4.0后新增模块;
- Test:单元测试和集成测试;
4.Spring的下载及目录结构
spring开发所需的jar包分为两个部分:Spring框架包和第三方依赖包
4.1 Spring框架包
- docs文件夹中包含API文档和开发规范;
- libs:jar包;
- Schema文件夹:开发所用的schema文件;
在libs目录中有四个Spring的基础包,分别对应spring核心容器的四个模块。
- spring-core-4.3.6.RELEAE.jar
包含spring框架的核心工具类,spring其他组件都要用到这个包中的类。
- spring-beans-4.3.6.RELEASE.jar
所有应用都要用到的jar包,包含访问配置文件、创建和管理Bean以及进行控制反转或者依赖注入操作相关的所有类。
- spring-context-4.3.6.RELEAE.jar
提供在基础IoC功能上的扩展服务,还提供了许多企业级服务的支持。
- spring-expression-4.3.6.RELEAE.jar
定义spring的表达式语言。
4.2 第三方依赖包
使用spring开发时,除了要是用自带的jar包外,spring的核心容器还需要依赖commons.logging的jar包。