Spring05---静态代理

xiaoxiao2021-02-28  107

23种设计模式07—代理模式

实现相同的接口,持有要代理对象

package com.chb.Spring.dao; import javax.annotation.Resource; import org.springframework.stereotype.Repository; import com.chb.Spring.model.User; import com.chb.Spring.utils.MyLogger; /** * 静态代理 * 实现一个代理类: * 代理类实现 所需要修改累的接口 * 注入一个对象, 通过这个对象进行修改的类操作, * 并在实现方法内,添加所需要的信息 * 这个满足了开闭原则, 不用修改源代码 */ @Repository("userProxyDao") public class UserProxyDao implements IUserDao{ //注入一个IUSerDao对象, 并提供相应的getter setter方法 private IUserDao userDao; public IUserDao getUserDao() { return userDao; } @Resource//默认通过名称注入 public void setUserDao(IUserDao userDao) { this.userDao = userDao; } public void add(User user) { //添加的信息 MyLogger.info("添加了用户"); userDao.add(user); } public void delete(int id) { MyLogger.info("删除了用户"); userDao.delete(id); } public void load(int id) { MyLogger.info("加载了用户"); userDao.load(id); } }

在UserService中注入代理对象

//默认根据名称注入 @Resource(name="userProxyDao") public void setUserDao(IUserDao userDao) { this.userDao = userDao; }

测试结果

问题: 就是静态代理的问题, 如果要代理的过多, 导致代理类爆炸式增长, 导致类过多。

转载请注明原文地址: https://www.6miu.com/read-64823.html

最新回复(0)