2.spring的主要模块作用
2018-06-18 03:41:26来源:未知 阅读 ()
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操作相关的所有类.
Context: 在core和bean的基础上, 提供了一种类似于JNDI(Java命名和目录接口,所有与系统外部的资源的引用,都可以通过JNDI定义和引用https://www.cnblogs.com/shawnblogs/p/5279733.html), Context继承了Beans的特性,为spring核心提供了大量的扩展,添加了国家化,时间传播,资源加载和EJB以及JMX的支持, 其中ApplicationContext接口是Context的核心.
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(被通知对象):被一个或者多个方面所通知的对象,这个对象永远是一个被代理对象.
Weaving:Weaving 把方面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象,这些可以在编译时,类加载时和运行时完成.
5. Test
Test模块支持使用Junit和TestNGINX对Spring组件进行测试
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring Cloud微服务(一):公共模块的搭建 2020-06-07
- Spring的核心模块解析 2020-05-22
- Spring Boot 入门(十三):集成Hasor的Dataway模块,干掉后 2020-05-13
- 模块(类)之间解耦利器:EventPublishSubscribeUtils 事件 2020-05-07
- HashMap主要方法源码分析(JDK1.8) 2020-04-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash