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操作相关的所有类.
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组件进行测试
2.spring的主要模块作用的更多相关文章
- spring cloud各个模块作用
Eureka Client:负责将这个服务的信息注册到Eureka Server中.Eureka Server:注册中心,里面有一个注册表,保存了各个服务所在的机器和端口号.ribbon:负载均衡,获 ...
- Spring模块作用
0.模块整理 Spring模块整理(http://www.kuqin.com/shuoit/20150805/347434.html) 模块名 作用 资料 aop spring的面向切面编程,提供A ...
- Spring之WEB模块
Spring的WEB模块用于整合Web框架,例如Struts 1.Struts 2.JSF等 整合Struts 1 继承方式 Spring框架提供了ActionSupport类支持Struts 1的A ...
- Spring Boot 多模块项目创建与配置 (一) (转)
Spring Boot 多模块项目创建与配置 (一) 最近在负责的是一个比较复杂项目,模块很多,代码中的二级模块就有9个,部分二级模块下面还分了多个模块.代码中的多模块是用maven管理的,每个模块都 ...
- Spring boot 多模块项目 + Swagger 让你的API可视化
Spring boot 多模块项目 + Swagger 让你的API可视化 前言 手写 Api 文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不 ...
- Spring Boot 多模块项目创建与配置 (一)
最近在负责的是一个比较复杂项目,模块很多,代码中的二级模块就有9个,部分二级模块下面还分了多个模块.代码中的多模块是用maven管理的,每个模块都使用spring boot框架.之前有零零散散学过一些 ...
- 【转】详解spring 每个jar的作用
spring.jar 是包含有完整发布模块的单个jar 包.但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2. ...
- Spring Boot 多模块项目创建与配置 (转)
转载:https://www.cnblogs.com/MaxElephant/p/8205234.html 最近在负责的是一个比较复杂项目,模块很多,代码中的二级模块就有9个,部分二级模块下面还分了多 ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块
spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...
随机推荐
- A+B for Polynomials
This time, you are supposed to find A+B where A and B are two polynomials. Input Specification: Each ...
- pipeline的添加顺序和执行顺序
原文链接:https://www.cnblogs.com/ruber/p/10186571.html 本文只想讨论一下pipeline的执行顺序问题,因为这个搞不明白就不知道先添加编码还是解码,是不是 ...
- [转帖]Linux教程(12)- linux输入输出重定向
Linux教程(12)- linux输入输出重定向 2018-08-21 22:57:02 钱婷婷 阅读数 49更多 分类专栏: Linux教程与操作 Linux教程与使用 版权声明:本文为博主原 ...
- SQL 向表中添加字段
如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识. 通用式: alter table [表名] add [字段名] 字段属 ...
- AX导出excel设置格式
今天在AX2009里面写一个导出EXCEL,没有模版,这是第一次碰到,之后写完之后发现导出的数据格式不对. 到处取经之后得到一下结果: 定义一个 Com range; SysExcelCells ...
- ORACLE数据库实现自增的两种方式
Mysql数据库因为其有自动+1,故一般我们不需要花费太多时间,直接用关键字auto_increment即可,但是Oracle不行,它没有自动增长机制.顾我们需要自己去实现.一般有两种方式,但是这两种 ...
- [jsp学习笔记] jsp基础知识 数据初始化、同步
- head引入样式
引入CSS(base基础样式,index页面样式): <link rel="stylesheet" type="text/css" href=" ...
- Android多种方式实现相机圆形预览
效果图如下: 一.为预览控件设置圆角 为控件设置ViewOutlineProvider public RoundTextureView(Context context, AttributeSet at ...
- mysql启动过程
MYSQL启动过程经过以下顺序 1.mysql读取配置文件的顺序 读取顺序 /etc/my.cnf>/etc/mysql/my.cnf>/usr/etc/my.cnf ~/.my.cnf ...