spring相关概念

1.spring是什么?

spring是分层的,JavaEE应用一站式的轻量级开源框架,以控制反转(IoC,Inserve of Control)和面相切面编程(AOP,Aspect Oriented Programming)为内核,提供了表现层Sping MVC,持久层Spring JDBC 以及业务管层事物管理等企业级应用技术。

2.spring的优点

1.低入侵,代码污染低

2.高度开放性,可以自主选择spring全部或者部分

3.可以对主流框架进行集成

4.DI机制降低了业务对象替换的复杂性(应用程序在运行时依赖IoC容器来动态注入对象所需的外部依赖)

5.使用IoC容器,将对象的之间的依赖关系交给Spring,降低了组件之间的耦合性,更能专注于应用逻辑

3.springIoC的理解

1.什么是IoC

IoC,Inversion of Control,控制反转,指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。在IOC中,所有的对象都被 Spring 控制,控制对象生命周期的不再是引用它的对象,而是Spring容器,由 Spring 容器帮我们创建、查找及注入依赖对象,而引用对象只是被动的接受依赖对象。

2.什么是DI

IoC 的一个重点就是在程序运行时,动态的向某个对象提供它所需要的其他对象,这一点是通过DI(Dependency Injection,依赖注入)来实现的,即应用程序在运行时依赖 IoC 容器来动态注入对象所需要的外部依赖。

4.AOP

面向切面编程

用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,提高系统的可维护性。

预编译,运行期间动态代理的对程序功能进行统一维护的技术,是OOP的扩展和补充。

OOP,允许开发者定义纵向关系,但不适用于定义横向关系,,会导致大量代码重复,不利于各个模块的复用。

1.横切关注点

分布于应用多处的功能(代码)

2.AOP主要功能

日志记录,事务处理,性能统计,安全处理,异常处理

3.机制

AOP通过横向抽取机制为这类无法通过纵向继承体系(OOP的方式)进行抽象的重复性代码提供了解决方案。

4.其他AOP框架

1.AspectJ:语言级的AOP实现,扩展了java语言,定义了AOP语法,能够在编译器提供横切代码的织入,通过专门的编译器生产class文件。

2.AspectWerkz:基于Java的简单,动态,轻量级的AOP框架,支持运行期或类装载期织入横切代码,它需要特殊的类装载器。

3.JBoss AOP:Jboss应用程序服务器框架的扩展功能。

5.AOP术语

1.连接点

指程序运行过程中所执行的方法

横切关注点的代码放回的地方

如类开始初始化前,类初始化后。类某个方法调用前,调用后,方法抛出异常后

spring AOP仅支持方法的连接点

2.切点

AOP定位连接点的方式

每个类一般有多个连接点(一般一个方法就是一个连接点)

一个切点可以匹配多个连接点

3.增强(通知)(Advice)

织入到连接点上的一段代码

还拥有执行点的方位

结合方位信息和切点,AOP就可以找到特定的连接点

4.引介

一种特殊的增强,为类添加一些属性和方法

5.目标对象

增强的织入目标类

6.织入(Waving)

将增强添加到目标类具体连接点的过程

编译器织入

类装载期织入

AOP采用动态代理织入:在运行期为目标类添加增强生成子类的方式

7.切面(Aspect)

切点+增强(引介)

包括了横切逻辑的定义,也包括了连接点的定义

 

6.关系图

img

 

 

posted @   因为在乎  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示