2.spring的主要模块作⽤
spring中⼤约包含20过个模块, 主要包括以下⼏部分:
1. Core Container
Core Container(核⼼容器)包含Core,Beans,Context和Expression Language模块
Core和Beans是spring的基础部分,提供IOC和依赖注⼊的特性, 基础概念是BeanFactory, 它提供对Factory模式的经典实现来消除对程序性单列模式的需求,并使得可以程序从逻辑中分离出依赖关系和配置.
Core: 主要包含spring框架基本的核⼼⼯具类, core模块是其他组件的基本核⼼.
Beans: beans模块是所有应⽤都要⽤到的, 它包含访问配置⽂件,创建和管理bean以及进⾏IOC/DI操作相关的所有类.
Expression Language: 是jsp规范中定义的unifed expression language的⼀个扩展, ⽤于在运⾏时查询和操作对象, ⽀持设置/获取属性的值,属性的分配, ⽅法的调⽤,访问数组上下⽂等操作.
2.Data Access/Integration
JDBC: 提供⼀个JDBC抽象层,消除冗长的JDBC编码和解析数据库⼚商特有的错误代码, 包含了对jdbc数据库访问进⾏封装的所有类ORM: 对象-关系映射API, 如JPA, JDO, Hibernate, Mybatis等, 提供了⼀个交互层, 利⽤ORM进⾏封装, 可以混合使⽤所有Spring提供的特性进⾏O/R映射.
JMS: 主要包含⼀些制造和消费信息的特性.
Transaction: 对事务的管理, 这些事务必须实现特定的接⼝, 并且对所有的POJO都使⽤.
3.Web模块
WEB模块提供对常见框架如Struts,JSF的⽀持,Spring能够管理这些框架,将Spring的资源注⼊给框架,也能在这些框架的前后插⼊。
web: 提供基础的⾯向web的集成特性,如⽂件上传,使⽤servlet listeners初始化IOC容器以及⼀个⾯向web的应⽤上下⽂.
web-servlet: 包含Spring的model-view-controller(MVC)实现, Spring的MVC框架使得模型范围内的代码和web forms之间能够清楚的分开, 并与Spring框架的其他特性集成在⼀起.
web-struts: 提供对struts的⽀持, 是的类在Spring应⽤中能够与⼀个典型的struts web层集成在⼀起.
4.AOP
AOP(Aspect Oriented Programming),即⾯向切⾯编程,可以说是OOP(Object Oriented Programming,⾯向对象编程)的补充和完善。OOP引⼊封装、继承、多态等概念来建⽴⼀种对象层次结构,⽤于模拟公共⾏为的⼀个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如⽇志功能。⽇志代码往往横向地散布在所有对象层次中,⽽与它对应的对象的核⼼功能毫⽆关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的⽆关的代码被称为横切(cross cutting),在OOP设计中,它导致了⼤量代码的重复,⽽不利于各个模块的重⽤。
AOP技术恰恰相反,它利⽤⼀种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共⾏为封装到⼀个可重⽤模块,并将其命名为"Aspect",即切⾯。所谓"切⾯",简单说就是那些与业务⽆关,却为业务模块所共同调⽤的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。
使⽤"横切"技术,AOP把软件系统分为两个部分:核⼼关注点和横切关注点。业务处理的主要流程是核⼼关注点,与之关系不⼤的部分是横切关注点。横切关注点的⼀个特点是,他们经常发⽣在核⼼关注点的多处,⽽各处基本相似,⽐如权限认证、⽇志、事物。AOP的作⽤在于分离系统中的各种关注点,将核⼼关注点和横切关注点分离开来。
Aspects: 提供了对AspectJ的集成⽀持
Instrumentation: 提供了Class instrumentation⽀持和classloader实现,使得可以在特定的应⽤服务器上的使⽤.
Join point(连接点):在应⽤程序中它代表⼀个点
Pointcut(切⼊点):这是⼀组⼀个或多个连接点,通知应该被执⾏
Advice(通知): 这是实际⾏动之前或之后执⾏的⽅法
Introduction(引⽤):引⽤允许添加新⽅法或属性到现有的类中
Target object(被通知对象):被⼀个或者多个⽅⾯所通知的对象,这个对象永远是⼀个被代理对象.spring系列框架有哪些
Weaving:Weaving 把⽅⾯连接到其它的应⽤程序类型或者对象上,并创建⼀个被通知的对象,这些可以在编译时,类加载时和运⾏时完成. 5. Test
Test模块⽀持使⽤Junit和TestNGINX对Spring组件进⾏测试

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。