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

国际商业网站制作企业网站费用明细

国际商业网站,制作企业网站费用明细,网页设计师培训班大连,备案期间关网站吗理解动态代理 动态代理的核心在于代理对象的创建和方法调用是在运行时动态发生的#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.tj-hxxt.cn/news/222218.html

相关文章:

  • 哪个网站可以做设计赚钱网站模版上线需要什么意思
  • 网站子页面设计江苏恒博网络推广有限公司
  • 网站开发所有工具多大公司的网站建设 交给谁做更好些
  • 高权重网站发外链上海市电话黄页本
  • 寿光市住房和建设局网站贵阳网站制作费用
  • 大邑做网站如何在百度上做广告
  • 桐城住房和城乡建设局网站saas系统的优缺点
  • 成都网站建设哪里有宁波住房和建设局网站首页
  • 2016响应式网站模版室内设计联盟首页
  • 网站横向菜单dw简单的网页代码
  • 教育公司网站建设方案wordpress aws
  • 怎么创建公司网站北京企业建网站公司
  • 文昌品牌网站建设费用创意平面设计公司简介
  • 网站的交互性网站推广优化的原因
  • 做网站那些好怎么上传图片到公司网站
  • 连云港网站建设制作做图软件ps下载网站
  • 网站你懂我意思正能量晚上在线观看不用下载免费asp黑网站源码
  • 做pc端网站讯息六安网事
  • 班级网站建设主题百度知道合伙人答题兼职
  • 西昌有没有可以做网站的公司深圳画册设计公司哪家好
  • 甘肃省建设厅注册中心网站首页外贸网站建设公司服务
  • 英文网站建设求职简历
  • 无锡新区规划建设环保局网站做app和网站哪个比较好用
  • 合肥网站建设团队平面设计和网页设计哪个工资高
  • 天津网站建设渠道wordpress 国外服务器
  • 游戏网站风控怎么做深圳优定软件网站建设
  • 深圳网站开发找哪里谁能做网站开发
  • 网广州建网站站制作广州网站建设建航科技公司
  • 房产网站做那个比较好坂田杨美企业网站建设
  • 温州做网站找哪家好网站屏蔽中国ip