当前位置:首页 > CN2资讯 > 正文内容

jdk动态代理代码jdk动态代理

3天前CN2资讯

自己在研究SpringAop的时候,其最基本的核心是动态代理,也可以说是Aop是动态代理的一种实现方式。

下面自己做了个测试,依据的是jdk,在Eclipse上可以运行。

需求:当用户的权限不为null时,才会访问接口里面的方法。

一 、定义接口类-----jdk的动态代理是依据接口实现的

public interface PersonServicw {
 public void save(String s);

 public void update(String name, Integer password);

 public String getPersonMan(Integer personId);
}
 

二、定义接口实现类---也就是常说的目标类(被代理的类)

public class PerSonServiceImpl implements PersonServicw {
 private String user = null;

 public PerSonServiceImpl(String user) {
  this.user = user;
 }

 public String getUser() {
  return user;
 }

 public void setUser(String user) {
  this.user = user;
 }

 public PerSonServiceImpl() {
 
 }

 public String getPersonMan(Integer personId) {

  return "xxx";
 }

 public void save(String s) {
  System.out.println("我是save()方法");

 }

 public void update(String name, Integer password) {
  System.out.println("我是update()方法");

 }
 

三 、PersonHander  ----写入自己

public class PersonHander implements InvocationHandler{
   private PerSonServiceImpl perSonServiceImpl;

   public Object createProxyInstance(PersonServicw perSonServiceImpl){
    this.perSonServiceImpl=(PerSonServiceImpl)perSonServiceImpl;
    return  Proxy.newProxyInstance(this.perSonServiceImpl.getClass().getClassLoader(),
      this.perSonServiceImpl.getClass().getInterfaces(), this);
    
   }
 public Object invoke(Object arg0, Method method, Object[] arg2) throws Throwable {
  Object result=null;
  if(perSonServiceImpl.getUser()!=null){
    result=method.invoke(perSonServiceImpl, arg2);
  }else{
   System.out.println("该用户没有权限");
  }
  return result;
 }

}

测试类:

public static void main(String[] args) throws Exception{
  
  PersonServicw  perSonServiceImpl=new PerSonServiceImpl();
  PersonHander  hander=new PersonHander();
  PersonServicw personServicw=(PersonServicw)hander.createProxyInstance(perSonServiceImpl);
  personServicw.save("88");
 }

 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25100.html

    分享给朋友:

    “jdk动态代理代码jdk动态代理” 的相关文章

    微信海外服务器助力全球化业务拓展与用户体验优化

    微信海外服务器是微信在全球范围内部署的技术基础设施,旨在支持其海外业务的发展。这些服务器不仅是数据存储的中心,还承担着用户信息处理和互动的各种功能。随着技术的不断进步,微信的使用需求也在全球范围内快速增长,这种现象驱动着微信不断扩展其海外服务器的网络。 我们时常看到,微信与WeChat的分拆让用户数...

    探索阿什本:全球数据中心之都的科技与美食之旅

    阿什本,这个名字或许在很多人耳中听起来并不陌生。作为美国弗吉尼亚州劳登郡的一部分,它距离华盛顿特区仅34英里,恰如其分地威尔士着城市的繁华。在我踏上这片土地的那一刻,便被它的快速发展与活力所吸引。阿什本不仅是一个城市,更是全球数据中心的中心,称其为“全球数据中心之都”可谓名至实归。 在阿什本,互联网...

    AWS在日本的云计算市场发展与投资前景分析

    在讨论AWS在日本的市场背景时,我觉得日本的云计算市场是一个非常吸引人的话题。日本的经济科技发展水平相对较高,企业和政府机构对于云计算的接受度和需求不断增加。这种需求尤为体现于各个行业,比如金融、医疗、教育等。许多传统的行业正在努力向数字化转型,寻找更高效、可靠的解决方案。 2011年,AWS决定在...

    搬瓦工中文网:轻松掌握VPS服务与网络加速技巧

    当我第一次听到“搬瓦工”这个名字时,感觉它似乎很神秘,直觉告诉我,这背后一定有许多有趣的内容。经过一番了解后,我发现搬瓦工其实是一款基于VPS(虚拟专用服务器)的服务,主要帮助用户实现网络加速与资源的灵活使用。简而言之,搬瓦工让用户能够在更广阔的网络环境中畅游,不受地理限制。 搬瓦工的功能非常多样,...

    全面掌握路由测试:提升网络性能的关键技术与工具

    路由测试的定义 路由测试,简单来说,就是对网络路由器性能和功能进行的一系列评估和验证。它帮助我们了解网络设备如何处理数据包,从而保证信息在传输过程中的安全和高效。这项测试通常涉及到监测路由器的各种指标,比如数据包的转发速度、延迟和网络稳定性,以确保设备符合预期的性能标准。 当我第一次接触路由测试时,...

    全面掌握BBR加速技术,提升网络传输效率的终极指南

    在现代网络传输中,带宽的利用与数据传输的速度变得尤为重要。提到这里,BBR加速即以其独特的方式引起了不少人的关注。BBR,或者称为Bottleneck Bandwidth and Round-trip propagation time,是一种新的TCP拥塞控制算法,旨在优化网络性能。BBR的核心思想...