Spring总结

Spring总结

Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

web层:struts,spring-MVC

service层:spring

dao层:hibernate,mybatis , jdbcTemplate

一、Spring的优点

方便解耦,简化开发(高内聚低耦合)

Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理

•spring工厂是用于生成bean

AOP编程的支持

•Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

声明式事务的支持

•只需要通过配置就可以完成对事务的管理,而无需手动编程

方便程序的测试

•Spring对Junit4支持,可以通过注解方便的测试Spring程序

方便集成各种优秀框架

•Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持

降低JavaEE API的使用难度

•Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

二、Spring体系结构

Spring框架整体被分为五个模块:核心容器(core container), 面向切面编程(aop), 数据访问(date access), web, test.

core

core部分包含4个模块

spring-core:依赖注入IoC与DI的最基本实现

spring-beans:Bean工厂与bean的装配

spring-context:spring的context上下文即IoC容器

spring-expression:spring表达式语言

三、IOC控制反转

https://blog.csdn.net/Sxx312/article/details/88933374

Inversion of control(控制反转), 从字面上来理解: 当一个对象创建时, 它所依赖的对象由外部传递给他, 而非自己去创建所依赖的对象(比如通过new操作). 因此,也可以说在对象如何获取他所依赖的对象这件事情上, 控制权反转了.

IOC的底层原理

Xml解析、工厂设计模式、单例模式、反射

四、DI依赖注入

Dependency injection.

什么是依赖? 一个对象完成业务功能需要依赖另一个对象,比如service功能需要依赖于dao

什么是注入? 就是在获取一个对象时,该对象所依赖的实例已经由spring替我们分配了

五、AOP面向切面编程

https://blog.csdn.net/Sxx312/article/details/88936128

https://blog.csdn.net/Sxx312/article/details/88935045

AOP的OOP的延续,是spring框架中的一个热点和优势,利用AOP可以对业务的各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度降低.提高代码的复用性,同时提高开发效率

AOP采取了横向抽取的机制,取代了传统纵向继承体系的重复性代码

应用场景:日志, 事务管理, 缓存, 性能检测。

Authentication 权限
Error handling 错误处理
Lazy loading 懒加载
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Resource pooling 资源池
Synchronization 同步
Transactions 事务

Spring AOP 使用纯java实现,不需要专门的编译过程和类加载器,在运行期通过动态代理的方式向目标类织入增强代码

Aspectj 是一个基于java语言的AOP框架,从spring2.0开始,引入了对于Aspectj的支持

AOP的专有名词

JoinPoint(连接点)在应用执行过程中能够插入切面的一个点,这个点可以是调用方法时、抛出异常时甚至是修改一个字段。

PointCut(切点),切点缩小切面所通知的连接点的范围,它的定义会匹配通知所要织入的一个或多个连接点。

Advice(通知),在切点干什么,指定在PointCut地方做什么事情(增强),打日志、执行缓存、处理异常等等。

Advisor/Aspect(切面),切面是切点和通知的结合。切点和通知共同定义了切面的全部内容——它是什么,在何时何处完成什么功能。

Proxy (代理),其不能算做AOP的家庭成员,更相当于一个管理部门,它管理 了AOP的如何融入OOP。之所以将其放在这里,是因为Aspect虽然是面向切面核心思想的重要组成部分,但其思想的践行者却是Proxy,也是实现AOP的难点与核心据在。我们常说的代理包括静态代理、动态代理和基于CGLib代理,关于代理的知识请自行学习。

Weaving(织入): 组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。

六、Spring的事务管理

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值