总结spring核心功能 IoC/DI和AOP

本文详细介绍了Spring框架的核心特性——控制反转(IoC)和依赖注入(DI),以及面向切面编程(AOP)的概念、作用和实现方式。IoC和DI的主要目标是解耦,使得对象的创建和管理由Spring负责。AOP则用于在不修改原有代码的情况下添加额外功能,提高代码的扩展性和职责的明确性。文章通过实例展示了如何通过Schema-based和AspectJ两种方式实现AOP。
摘要由CSDN通过智能技术生成
  1. Spring 核心功能
    1. IoC/DI   控制反转/依赖注入
    2. AOP    面向切面编程

一.IoC

  1. IoC 是什么?

1.1 IoC 完成的事情原先由程序员主动通过 new 实例化对象事情, 转交给 Spring 负责.

1.2控制反转中控制指的是:控制类的对象.

1.3控制反转中反转指的是转交给 Spring 负责.

1.4 IoC 最大的作用:解耦.

程序员不需要管理对象.解除了对象管理和程序员之间的耦合.

. DI

  1. DI 是什么?

1.1 DI 和 IoC 是一样的

          1.2当一个类(A)中需要依赖另一个类()对象时,把 B 赋值给 A 的过程就叫做依赖注入.

代码体现:

  

.AOP

1. 正常程序执行流程都是纵向执行流程

   1.1又叫面向切面编程,在原有纵向执行流程中添加横切面

   1.2不需要修改原有程序代码

      1.2.1具有高扩展性;

      1.2.2原有功能相当于释放了部分逻辑.让职责更加明确.

 

2. 面向切面编程是什么?

   2.1 在程序原有纵向执行流程中,针对某一个或某一些方法添加通知,形成横切面过程就叫做面向切面编程.

 

3.常用概念

  3.1 原有功能: 切点,pointcut

3.2 前置通知: 在切点之前执行的功能.beforeadvice

3.3 后置通知: 在切点之后执行的功能,afteradvice

3.4 如果切点执行过程中出现异常,会触发异常通知.throwsadvice

3.5 所有功能总称叫做切面.

3.6 织入: 把切面嵌入到原有功能的过程叫做织入

 

4.spring 提供了 2 种 AOP 实现方式

  4.1Schema-based

4.1.1 每个通知都需要实现接口或类

4.1.2 配置 spring 配置文件时在<aop:config>配置

4.2AspectJ

4.2.1 每个通知不需要实现接口或类

4.2.2 配置 spring 配置文件是在<aop:config>的子标签<aop:aspect>中配置

 

四.Schema-based 实现步骤

1.导入 jar( aopalliance.jar 和 aspectjweaver.jar)

2. 新建通知类

2.1 新建前置通知类

2.1.1arg0: 切点方法对象 Method 对象

2.1.2arg1: 切点方法参数

2.1.3arg2:切点在哪个对象中

public class MyBeforeAdvice implements MethodBeforeAdvice {

@Override

public void before(Method arg0, Object[] arg1, Object

arg2) throws Throwable { System.out.println("执行前置通知");

  } }

2.2 新建后置通知类

2.2.1arg0: 切点方法返回值

2.2.2arg1:切点方法对象

2.2.3arg2:切点方法参数

2.2.4arg3:切点方法所在类的对象

public class MyAfterAdvice implements AfterReturningAdvice {

 &#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值