base
- Aspect-oriented programming
- 面向切面的程序设计
- 用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect)
- 场景: 权限认证,日志和事务处理.
demo
基本背景
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);
}
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...");
}
}
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);
}
}
jdk 动态代理
import com.ah.service.User;
import c