尚硅谷-Spring5.2.6-源码讲解课程-AOP篇

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值