当前位置: 首页 > news >正文

制作自己的网站多少钱wordpress 支付宝捐赠

制作自己的网站多少钱,wordpress 支付宝捐赠,最便宜的外贸网站建设,网站建设基础教程人教版代码地址 https://github.com/cmdch2017/JDKproxy.git/ 我的理解 我的理解是本身service-serviceImpl结构,新增一个代理对象proxy,代理对象去直接访问serviceImpl,在proxy进行事务的增强操作,所以代理对象实现了接口。如何实现…

代码地址

https://github.com/cmdch2017/JDKproxy.git/

我的理解

我的理解是本身service-serviceImpl结构,新增一个代理对象proxy,代理对象去直接访问serviceImpl,在proxy进行事务的增强操作,所以代理对象实现了接口。如何实现动态呢?需要实现InovacationHandler接口,并用反射调用invoke方法,实现类似于泛型一样的效果。

CHATGPT回答

“JDK动态代理是通过Proxy类和InvocationHandler接口实现的。它允许在运行时生成代理类,无需事先定义代理类,从而在不修改原有代码的情况下对方法进行增强。通过实现InvocationHandler接口,我们可以在目标方法执行前后插入自定义逻辑,比如事务处理。动态代理的优势在于避免了手动创建大量代理类的繁琐工作,使代码更加简洁和易维护。”

核心代码

客户端

public class TestStudent {public static void main(String[] args) {
//        testQuery(1);testQueryObject(1);}
//这里是动态代理,多实现了一个InvocationHandlerprivate static void testQueryObject(int id) {DaoTransaction transaction=new DaoTransaction();StudentServiceImpl studentService=new StudentServiceImpl();TransactionHandler transactionHandler=new TransactionHandler(studentService,transaction);StudentService proxyInstance=(StudentService)Proxy.newProxyInstance(StudentServiceImpl.class.getClassLoader(),StudentServiceImpl.class.getInterfaces(),transactionHandler);Student student=proxyInstance.query(id);System.out.println("id:"+student.getId()+",name:"+student.getName());}
//这里是静态代理private static void testQuery(int id) {DaoTransaction transaction=new DaoTransaction();StudentServiceImpl studentService=new StudentServiceImpl();ProxyStudent proxyStudent=new ProxyStudent(studentService,transaction);Student student=proxyStudent.query(id);System.out.println("id:"+student.getId()+",name:"+student.getName());}
}

动态代理学生

public class TransactionHandler implements InvocationHandler {private DaoTransaction daoTransaction;private Object object;public TransactionHandler(Object object, DaoTransaction daoTransaction) {this.object = object;this.daoTransaction = daoTransaction;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {return method.invoke(object,args);}
}
@Data
public class Student {private int id;private String name;
}

静态代理学生

public class ProxyStudent implements StudentService {private StudentServiceImpl studentService;private DaoTransaction daoTransaction;public ProxyStudent(StudentServiceImpl studentService, DaoTransaction daoTransaction) {this.studentService = studentService;this.daoTransaction = daoTransaction;}@Overridepublic Student query(int id) {daoTransaction.startTransaction();Student student=studentService.query(id);daoTransaction.endTransaction();return student;}
}
public class StudentServiceImpl implements StudentService {@Overridepublic Student query(int id) {System.out.println("执行查询");Student student=new Student();student.setId(id);student.setName("lst");return student;}
}
public interface StudentService {Student query(int id);
}
public class DaoTransaction {public void startTransaction() {System.out.println("开启事务");}public void endTransaction() {System.out.println("关闭事务");}
}
http://www.yayakq.cn/news/201151/

相关文章:

  • 下载的网站模板怎么使用wordpress多域一网
  • 南阳网站改版wordpress 获取置顶文章
  • 重庆微信网站建设报价表如何进入google网站
  • 哪些大型网站有做互联网金融小视频剪辑app哪个好
  • 专业制作网站公司吗药品网站网络营销推广怎么做
  • 英语营销型网站建设贵州百度推广优化报告
  • 企业建站有什么好处做网站需要好多图片
  • 凡科建站的优缺点东莞市小程序定制开发丨网站建设
  • 网站专题怎么做呢app网站建站系统
  • 景区网站建设费用河北建设工程信息网网址
  • 百竞网站建设专业的网站制作正规公司
  • 深网网站企业年报网上申报入口官网
  • 有关网站开发的创意常州行业网站
  • 莲湖微网站建设joomla 做外贸网站 好的
  • php做直播网站wordpress的翻译文件
  • 天正电气网站建设photoshop软件
  • 湖南网站设计企业网站建设目录结构doc
  • 现代电子商务网站建设技术帮别人做网站多少钱
  • 深圳网站搭建专业公司wordpress 菜单加图标
  • 佛山做网站建设公司wordpress get请求参数
  • 如何注销网站备案负责人农村建设投诉网站首页
  • 装修网站应该怎么做外贸网站建设 深圳
  • 做宝宝衣服的网站丽水专业的网站建设
  • vue.js网站如果做自适应广告设计公司保密协议
  • 前端做的好的网站网站建设的价位
  • 申请网站服务器网站建设算加工承揽合同吗
  • 仿京东电商的网站开发报价直播app源码
  • 如何制作简单网站荥阳网络推广公司
  • 平台类网站建设建设带数据搜索的网站
  • 网站互动营销网站用户体现好坏