Spring复习[未完待续]

Spring框架宗旨:不重新发明技术,让原有的技术使用起来更加方便
Spring三大核心功能
1.IoC/DI 控制反转 依赖注入
Ioc完成的事情原先由程序员主动通过new实例化对象事情,转交给Spring负责
控制:控制类的对象
反转:转交给Spring负责
最大作用解耦:程序员不需要管理对象,解除了对象管理和程序员之间的耦合

  1. AOP 面向切面编程
    在原有纵向执行流程中添加横切面,不需要修改原有代码,具有高扩展性,原有功能相当于释放了部分逻辑,让职责更加明确


    常用概念

    1. 原有功能:切点, pointcut
    2. 前置通知:在切点之前执行的功能.before advice
    3. 后置通知:在切点之后执行的功能,after advice
    4. 如果切点执行过程中出现异常,会触发异常通知,throws adivce
    5. 所有功能总称为叫做切面.
    6. 织入:吧切面嵌入到原有功能的过程叫做织入

    Spring提供了2种 AOP 实现方式
    2.1 Schema-based
    1)每个通知都需要实现接口或类
    2)配置spring配置文件在配置
    2.1.2 具体实现步骤
    1.1)前置通知类配置 导入多需要的jar包或依赖(aopalliance.jar和aspectjweaver.jar)
    1.2)新建前置通知类 并且继承 MethBeforeAdvice

public class MyBeforeAdvice implements MethodBeforeAdvice{
    @Override
    public void before(Method arg0,Object[] arg1,Object arg2) throws Throwable{
        System.out.println("执行前置通知");
    }
}

2.1 新建后置通知 实现 AfterReturningAdvice接口
(arg0:切点对象返回值,arg1:切点方法对象,arg2:切点方法参数,arg3:切点方法所在类对象)


public class MyAfterAdvice implements AfterReturningAdvice{
    @Override
    public void before(Object arg0, Method arg1,Object[] arg2,Object arg3) throws Throwable{
        System.out.println("执行前置通知");
    }
}

3.配置spring配置文件
3.1 引入aop命名空间
3.2 配置通知类的
3.3 配置切面
3.4 * 通配符,匹配任意方法名,任意类名,任意一级包名
3.5 如果希望匹配任意方法参数(..)

2.2 AspectJ
1)每个通知不需要实现接口或类
2)配置Spring配置文件是在的子标签中配置
3) 配置异常通知的步骤
只有当切点报异常才会触发异常通知,如果想使用schema-base,需要按照特定的要求自己编写

  1. 声明式事务

. Spring依赖注入
当一个类(A)中需要依赖另外一个类(B)对象时,把B赋值给A的过程就叫依赖注入
DI有三种方式,分别为:

  1. 接口注入
  2. Setter方法注入
  3. 构造方法注入

你可能感兴趣的:(Spring复习[未完待续])