java spring核心技术AOP面向切面编程图文并茂包含例子demo

本文介绍了Java Spring的AOP核心概念,包括面向切面编程的背景、动态代理(JDK与CGLIB)、AOP的三件事(where, when, what),以及AOP的体系结构。详细讲解了Spring AOP的代理机制、应用场景和工作原理,还涵盖了Interceptor、Filter和Middleware的相关知识。" 71430346,6681179,NT驱动开发:关键函数与宏详解,"['驱动开发', 'Windows驱动', '内核模式', 'IRP处理', '设备对象']
摘要由CSDN通过智能技术生成

base

  • Aspect-oriented programming
  • 面向切面的程序设计
  • 用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect)
  • 场景: 权限认证,日志和事务处理.

Snipaste_2022-08-24_11-32-38

demo

基本背景

// 背景: 1. 模拟数据库操作增删改查  2. 每次操作之前新增权限校验,操作之后新增日志记录 
// spring06-aop1/src
// ├── main
// │   ├── java
// │   │   └── com.ah.service
// │   │       ├── User.java
// │   │       └── UserServiceImpl.java
// │   └── resources
// └── test
//     └── java
//         └── Test.java

// User.java 定义接口
package com.ah.service;
public interface User {
   
    void add(int id, String name);
    void delete(int id);
    void update(int id, String name);
    void query(int id);
}
// UserServiceImpl.java 实现类  
package com.ah.service;
public class UserServiceImpl implements User{
   
    public void add(int id, String name) {
   
        System.out.println("模拟add...");
    }
    public void delete(int id) {
   
        System.out.println("模拟delete...");
    }
    public void update(int id, String name) {
   
        System.out.println("模拟update...");
    }
    public void query(int id) {
   
        System.out.println("模拟query...");
    }
}
// Test.java 调用类的方法
import com.ah.service.UserServiceImpl;
public class Test {
   
    public static void main(String[] args) {
   
        UserServiceImpl u = new UserServiceImpl();
        u.add(1,"张三");
        u.delete(1);
        u.update(1,"李四");
        u.query(1);
    }
}
// 效果
// 模拟add...
// 模拟delete...
// 模拟update...
// 模拟query...

jdk 动态代理

// 需求: 每次操作之前新增权限校验,操作之后新增日志记录 
// 实现: 通过 jdk 动态代理实现
// JDK 动态代理 是基于JDK 不需要额外引入包

// User.java 定义接口 同上
// UserServiceImpl.java 实现类  同上
// Test.java 调用类的方法
import com.ah.service.User;
import c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值