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

企业网站的建站步骤广州网页制作公司

企业网站的建站步骤,广州网页制作公司,广东汕头最新消息,seo排名教程技术理解动态代理 动态代理的核心在于代理对象的创建和方法调用是在运行时动态发生的#xff0c;而不是在编译时就已经确定的性能监控、事务管理、日志记录通常需要使用代理对象对目标对象的功能进行增强为什么JDK动态代理只能代理有接口的类#xff1f; 因为Proxy.newProxyIns…理解动态代理 动态代理的核心在于代理对象的创建和方法调用是在运行时动态发生的而不是在编译时就已经确定的性能监控、事务管理、日志记录通常需要使用代理对象对目标对象的功能进行增强为什么JDK动态代理只能代理有接口的类 因为Proxy.newProxyInstance方法需要传入被动态代理的接口类target.getClass().getInterfaces()之所以要传入接口而不能传入类因为JDK动态代理会在运行时生成一个代理类叫做$Proxy0这个代理类会继承java.lang.reflect.Proxy这个类同时还会去实现被代理类的接口在Java里面是不支持多继承的而每一个动态代理类都继承了一个Proxy所以就导致了JDK动态代理只能代理接口而不能代理实现类其实也可以进行实现类的代理但是代理接口的设计更符合业务场景因为实际的开发中都是面向接口来开发的所以基于接口来实现动态代理更符合业务场景 JDK动态代理 public interface Service {void doSomething(); }public class ServiceImpl implements Service {Overridepublic void doSomething() {System.out.println(Doing something);} }import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;/*** JDK动态代理示例*/ public class MyInvocationHandler implements InvocationHandler {// target在构造之后不会发生改变private final Object target;public MyInvocationHandler(Object target) {this.target target;}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(前置处理);Object object method.invoke(target, args);System.out.println(后置处理);return object;}// 调用此方法会返回一个实现了目标对象所有接口的代理对象这个代理对象会使用当前类作为InvocationHandlerpublic Object getProxy() {// 类加载器、接口数组、InvocationHandlerreturn Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), target.getClass().getInterfaces(), this);}}public static void main(String[] args) {// 创建真实的服务对象Service realService new ServiceImpl();// 创建 MyInvocationHandler 的实例并传入真实的服务对象MyInvocationHandler handler new MyInvocationHandler(realService);// 使用 MyInvocationHandler 创建代理对象Service proxy (Service) handler.getProxy();// 调用代理对象的方法proxy.doSomething();}CGlib动态代理 dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.2.5/version/dependencyimport net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; import java.lang.reflect.Method;/*** 适用于没有实现任何接口的类* 需要引入cglib代码库* cglib增强器负责拦截方法调用并添加额外逻辑*/ public class CGlibProxy implements MethodInterceptor {public Object createProxy(Object target) {Enhancer enhancer new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create(); // 动态创建代理对象}Overridepublic Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {System.out.println(前置处理);Object result proxy.invokeSuper(obj, args); // 动态调用方法System.out.println(后置处理);return result;} }public static void main(String[] args) {ServiceImpl service new ServiceImpl();CGlibProxy proxy new CGlibProxy();ServiceImpl proxyService (ServiceImpl) proxy.createProxy(service);proxyService.doSomething();}
http://www.w-s-a.com/news/614466/

相关文章:

  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要
  • ftp 网站管理电商网站设计图片
  • 惠州免费建站模板营销型旅游网站建设
  • 南宁cms建站wordpress 开启缩略图
  • 网站模板软件网站admin密码
  • 网站信息做参考文献射阳做企业网站多少钱
  • 网站外部优化的4大重点外贸站外推广
  • 宁波网站建设活动德州乐陵德州seo公司
  • 网站网址相对路径如何设置wordpress怎么加快网站打开速度
  • 有没有能帮人快速网站备案的机构网站建设与制作总结
  • 网站不用了怎么办苏州h5模板建站
  • 网站建设制作定制免费网络短剧
  • 建设部建造师强制注销网站h5响应式网站模板下载
  • 蛋糕网站内容规划建设网站需要多少钱济南兴田德润o厉害吗
  • 企业如何建设网站呢做网站的高手
  • 为什么打开网址都是站长工具开发一款网站需要多少钱
  • 做一个网站app需要多少钱分类信息网站建设计划
  • 怎样下载建设部网站建模培训
  • 北流网站建设制作旅游网站开发目的和目标
  • 网站公司怎么做的网站建设论文二稿
  • 网站建设服务商都有哪些html项目答辩
  • 网站上传到万网主机wordpress视频防盗链