AOP简述
一个初学者的学习笔记
面向切面编程
AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
下面展示AOP的两种动态代理
文章目录
一.JDK 动态代理
JDK中的动态代理是通过反射类Proxy以及InvocationHandler回调接口实现的,只能对实现了接口的类产生代理对象
1.创建接口与实现类
接口
public interface UserDAO {
void addUser();
void delUser();
void updateUser();
void queryAllUser();
void findUser();
}
实现类
@Repository("userDAO")
public class UserDAOImpl implements UserDAO {
@Override
public void addUser() {
System.out.println("------addUser()-----");
}
@Override
public void delUser() {
System.out.println("------delUser()-----");
}
@Override
public void updateUser() {
System.out.println("-----updateUser()-----");
}
@Override
public void queryAllUser() {
System.out.println("-----queryAllUser()-----");
}
@Override
public void findUser() {
System.out.println("------findUser()-----");
}
}
2.在applicationContext.xml中配置注解
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd

本文介绍了Spring中的AOP概念,包括面向切面编程的简介和优势。接着详细讲解了JDK动态代理的实现,包括创建接口与实现类,配置ApplicationContext,实现InvocationHandler接口,以及如何生成和测试代理类。然后转向Cglib动态代理,说明其不受接口限制且效率更高的特点,解释了Cglib的工作原理,并展示了如何创建Cglib代理,包括实现MethodInterceptor接口,使用Enhancer类以及测试代码。最后提到了Cglib不支持final方法的代理限制。
最低0.47元/天 解锁文章
7524

被折叠的 条评论
为什么被折叠?



