AOP部分的知识相比IoC部分的要少很多,也很容易理解~
AOP基本概念
AOP,面向切面编程,AOP功能的通俗理解:不修改源代码但可以实现功能新增。
作用:降低耦合度。
AOP底层原理
技术:动态代理
实现:有接口的情况,通过JDK动态代理;没有接口,通过CGLIB动态代理
JDK动态代理

1.创建接口和接口对应的实现类
public interface UserDao {
public int add(int a, int b);
public String show(String str);
}
public class UserDaoImpl implements UserDao {
@Override
public int add(int a, int b) {
System.out.println("add方法执行...");
return a + b;
}
@Override
public String show(String str) {
System.out.println("show方法执行...");
return str;
}
}
2.通过实现InvocationHandler接口创建代理类
3.调用Proxy类的静态方法newProxyInstance生成代理对象
public class JDKProxy {
public static void main(String[] args) {
//创建接口实现类对象
Class[] interfaces = {UserDao.class};
//匿名内部类实现
/* Proxy.newProxyInstance(JDKProxy.class.getClassLoader(), interfaces, new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return null;
}
});*/
//实际业务中,调用代理对象的那个对象通常是通过前端等方式获取的
UserDao userDao = new UserDaoImpl();
//实现InvocationHandler接口,创建代理类方式
UserDao userDaoProxy = (UserDao)Proxy.newProxyInstance(JDKProxy.class.getClassLoader(), interfaces, new UserDaoProxy(userDao));
int add = userDaoProxy.add(6

最低0.47元/天 解锁文章
900






