静态代理
程序员文章站
2022-06-10 16:32:00
...
PS:
a. 代理类和被代理类都要实现接口【统一实现的业务功能,代理类在执行被代理类目标功能时进行操作】
b.在代理类中初始化被代理类对象,通过构造器传入被代理类对象的实例【具体执行的是被代理类的方法】
1.新建service接口
public interface IUserService {
public void userLogin();
}
2.新建service接口的实现类
public class UserServiceImpl implements IUserService {
@Override
public void userLogin() {
System.out.println("service中的登录逻辑...");
}
}
3.新建静态代理类
public class StaticProxy implements IUserService {
//被代理对象
private IUserService userService;
//通过构造器传入被代理对象
public StaticProxy(IUserService userService) {
super();
this.userService = userService;
}
/**
* @Description: 在执行目标方法之前或者之后进行操作
* @Create: 2019年11月15日 上午10:34:24
* @Parameters:
*/
@Override
public void userLogin() {
checkBefore();
userService.userLogin();
checkAfter();
}
/**
* @Description: 安全检查
* @Create: 2019年11月15日 上午9:32:45
* @Parameters:
*/
public void checkBefore(){
System.out.println("方法执行前的安全检查...");
}
public void checkAfter(){
System.out.println("方法执行后的安全检查...");
}
}
4.新建测试类
public class ProxyTest {
@Test
public void test(){
//创建需要被代理的对象
IUserService userService = new UserServiceImpl();
//创建静态代理类对象
StaticProxy staticProxy = new StaticProxy(userService);
//使用代理类执行被代理类的业务
staticProxy.userLogin();
}
}
上一篇: 小姐姐都想知道的问题,酸奶真的能减肥吗
下一篇: 乳腺结节吃什么好