Spring基础AOP静态代理

本文介绍了JavaEE开发中Service层的重要性,探讨了如何通过代理设计模式在Service层添加事务、日志和性能监控等额外功能。静态代理模式使得原始类与额外功能解耦,但同时也带来了代码量翻倍和维护性差的问题。文中通过具体示例展示了静态代理的实现过程。
摘要由CSDN通过智能技术生成

第一章静态代理设计模式

1.为什么需要代理设计模式

1.1问题
- 在JavaEE分层开发中,哪一层最重要
	Service
	
- Service层中包含的代码
  1. 核心功能
     1.业务运算
     2.DAO调用
  2. 额外功能
     1.事务
     2.日志
     3.性能监控
- Service层如何加入额外功能
	代理模式

2.代理设计模式

2.1概念
通过代理类为原始类增加额外功能
可以不修改原始类/目标类 << 被代理类
2.3静态代理的实现
代理类 = 原始类(目标类) + 额外功能 + 实现同一个接口
// 共同的接口
public interface UserService {
    void register(User user);

    boolean login(User user);
}

// 原始类
public class UserServiceImpl implements UserService{
    public void register(User user) {
        System.out.println("UserServiceImpl.register()");
    }

    public boolean login(User user) {
        System.out.println("UserServiceImpl.login()");
        return false;
    }
}

// 代理类
public class UserServiceImplProxy implements UserService{
    
    UserService userService = new UserServiceImpl();

    public void register(User user) {
        System.out.println("-----log-----");
        userService.register(user);
    }

    public boolean login(User user) {
        System.out.println("-----log-----");
        return userService.login(user);
    }
}

    @Test
    public void test4() {
        UserService userService = new UserServiceImplProxy();
        userService.login(new User());
    }
2.4静态代理的问题
1.每一个原始类都有一个代理类 代码量翻倍
2.额外功能维护性差
	代理类中 修改额外功能复杂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值