java 静态代理

467次阅读
没有评论
java

静态代理

2.动态代理

JDK 动态代理

CGLIB 动态代理 — mybatis

3.代理的作用,方法增强。就是可以在方法执行前后进行指定逻辑操作。

1.接口

package com.lt.test.service;

public interface UserService { void func();

void func2(); }

2.目标类实现

package com.lt.test.service.impl;

import com.lt.test.service.UserService;

public class UserServiceImpl implements UserService { @Override public void func() { System.out.println("目标类方法1"); }

}

3..静态代理类:需要实现接口,不容易扩展,实现简单。 原理:将目标类对象传进来。 外部就可以通过代理类对象来调用目标类对象了

package com.lt.test.staticproxy;

import com.lt.test.service.UserService;

public class StaticUserService implements UserService {

private UserService userService;

public StaticUserService(UserService userService){ this.userService = userService; }

@Override public void func() { System.out.println("before func"); userService.func(); System.out.println("after func"); }

@Override public void func2() { System.out.println("before func2"); userService.func2(); System.out.println("after func2"); } }

4.使用代理类调用目标类

package com.lt.test;

import com.lt.test.service.Animal; import com.lt.test.service.UserService; import com.lt.test.service.impl.AniamlImpl; import com.lt.test.service.impl.UserServiceImpl; import com.lt.test.staticproxy.AnimalStaticProxy; import com.lt.test.staticproxy.StaticUserService;

public class demo2 { public static void main(String[] args) { //创建静态代理对象 先创建目标对象,把对象传给代理对象 UserService userService = new UserServiceImpl(); StaticUserService staticUserService = new StaticUserService(userService); //使用代理对象访问目标对象方法 staticUserService.func(); staticUserService.func2();

} }

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:代理IP2022-11-28发表,共计1394字。
新手QQ群:570568346,欢迎进群讨论 Python51学习