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

朋友找做网站都要收定金快速做网站流量数据统计分析

朋友找做网站都要收定金,快速做网站流量数据统计分析,如何制作网站设计,外贸网站建设 惠州一、 反射 反射是在程序运行状态下#xff0c;动态获取类的结构#xff08;属性#xff0c;构造器#xff0c;方法#xff0c;注解#xff09;#xff0c;动态的创建类对象然后调用类中的属性方法。反射的起源Class#xff0c;Class中包含类反射要使用的API 获取Class的…            一、 反射 反射是在程序运行状态下动态获取类的结构属性构造器方法注解动态的创建类对象然后调用类中的属性方法。反射的起源ClassClass中包含类反射要使用的API 获取Class的方法 public class Student{private Integer sId;private String sName;private Integer getsId() {return sId;}private void setsId(Integer sId) {this.sId sId;}private String getsName() {return sName;}private void setsName(String sName) {this.sName sName;}public Student(Integer sId, String sName) {this.sId sId;this.sName sName;} } 反射的方法      0)  获取类类型 对象                ClassStudent stu  Student.class        0.5获取类 对象                  Student      stuObj        stu.new Instance()  //默认获取无参构造方法                  等价于                 Student     stuObj       stu.getConstructor().new Instance()      1获取属性                   Field     sName   stu.getDeclaredFieldsName                                 sName.setAccessible(true)                   Field     sId  stu.getDeclaredField(sId)                                 sId.setAccessible(true)                 属性设置值                         sName.set(stuObj,张三)                         sId.set(stuObj,1)      2获取方法           Method  getsId       stu.getMethod(getsId)           getsId.invoke(stuObj)      3)   获取构造方法           Constructor c         stu.getConstructor(Integer.class,String.class)              Student s   c.new Instance(1,张三) 注意事项         反射获取方法构造方法属性方法中 方法名都有加Declared 与 不加Declared。 不加Declared能够获取父子类中所有public修饰的方法 追加Declared能够获取当前类中所有修饰符的方法 二类加载 方法区放置读取的.class文件 堆区放置class文件生成的class对象 类加载的过程 1转载查找并加载class文件 2链接 验证验证字节码文件是否符合JVM规范。 准备为类的静态变量分配内存初始化化默认值 解析类中的符号引用转换为直接引用 3初始化为类的静态变量赋予正确的初始值 三Proxy  代理模式 Spring 框架 IOC控制反转把项目javabean对象的创建以继生命周期交给spring框架管理 需要使用bean对象时直接从Spring容器bean对象的容器中获取。 利用java的反射实例化bean对象 AOP面向切面编程两种动态代理实现                 jdk动态代理实现接口                 cglib动态代理单独的类没有实现接口 在不修改源代码的情况下扩展功能 静态代理 目标对象执行类中方法 代理对象代理对象中包含目标对象调用执行对象时可以额外添加功能 注意静态代理是提前写死的.class文件并且两个对象类实现同一个接口。跟接口耦合性太高改动麻烦。 动态代理 jdk动态代理 实现InvocationHandler接口重写invoke方法 1第一种方式 直接调用invoke方法           我们在其中内置一个Object对象用来实现对目标方法的调用 public class SqlsessionutilProxyJDK implements InvocationHandler {private Object obj; //代表目标对象Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {String name method.getName();if (get.startsWith(name)||select.startsWith(name)){Object invoke method.invoke(obj, args);return invoke;}else {try {SqlSession session SqlSessionUtil.getSession();Object invoke method.invoke(obj, args);session.commit();return invoke;} catch (Exception e) {SqlSessionUtil.rollbackSession();throw new RuntimeException(e);}}} }    在Test类中               SqlsessionutilProxyJDK sqlsessionutilProxyJDK new SqlsessionutilProxyJDK(); Object[] objects {2,在职}; EmpService o (EmpService) Proxy.newProxyInstance(new         EmpServiceImpl().getClass().getClassLoader(), new         EmpServiceImpl().getClass().getInterfaces(), new EmpServiceProxyJDK()); Method set new EmpServiceImpl().getClass().getMethod(set, Integer.class, String.class); sqlsessionutilProxyJDK.setObj(new EmpServiceImpl()); sqlsessionutilProxyJDK.invoke(o, set, objects);2简化方式调用代理对象的相应方法 public class SqlsessionutilProxyJDK implements InvocationHandler {private Object obj;public void setObj(Object obj) {this.obj obj;}public Object proxyInstance(Object obj){this.obj obj;Object o Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);return o;}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {String name method.getName();if (get.startsWith(name)||select.startsWith(name)){Object invoke method.invoke(obj, args);return invoke;}else {try {SqlSession session SqlSessionUtil.getSession();Object invoke method.invoke(obj, args);session.commit();return invoke;} catch (Exception e) {SqlSessionUtil.rollbackSession();throw new RuntimeException(e);}}} } 在Test类中 cglib代理      针对没有接口的类实现代理实质上是创建这个类的子类子类对象是代理对象这个类对象是目标对象 需要在pom文件中引入第三方jar包  。如果在普通的java项目中还需要有该jar包对应的依赖但在Maven中会自动添加该jar包的依赖。 !-- cglib--dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.2.12/version/dependency public class CGLIBProxy implements MethodInterceptor {public Object getProxyInstance(Object obj){Enhancer enhancer new Enhancer();enhancer.setSuperclass(obj.getClass());enhancer.setCallback(this);return enhancer.create();}Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {System.out.println(执行拓展功能);Object o1 methodProxy.invokeSuper(o, objects);return o1;} }    在测试类中
http://www.dnsts.com.cn/news/111463.html

相关文章:

  • wordpress文字中间佛山seo培训
  • 做网站提升公司形象移动网站打不开
  • 揭阳企业建站程序网站建设合同技术开发合同
  • 家用电脑网站建设微信公众号链接的网站怎么做的
  • 如何制作自己的网站并且插口代码电影介绍网页设计代码
  • 小学网站建设报告自助申请海外网站
  • 网站设计论文前言怎么写马家堡做网站的公司
  • 电子商务网站建设特色百度数据查询
  • iis部署网站项目腾宁网络做网站
  • 衡器行业网站建设模板2022热门网页游戏排行榜
  • 书画协会网站建设网站开发有哪些框架
  • 淘宝cms建站做公司网站比较好的
  • 上海哪家公司做网站最好医疗网站建设机构
  • 做网站需要的知识wordpress 七牛云上传图片
  • 如何建自己的个人网站网络科技公司的经营范围有哪些
  • 微网站开发合同wordpress关键词修改
  • title:网站建设公司实力wordpress自适应设置宽度
  • 企业网站管理系统设计与实现电子商务公司门头照片
  • 中鼎国际建设集团网站wordpress一键ssl
  • 6617网址导航彩票网站大全php 网站建设 教学
  • 做网站有哪些公司好做特殊原产地证的网站
  • 医疗营销的网站怎么做公众号用什么软件做
  • 南京建设工程网站产品展示网站 源码
  • 网站建设 管理规范地方门户系统
  • 何为门户网站深圳骏域网站建设专家
  • 做网站代管理三年扬州市住房和建设局网站
  • 网站运营团队各岗位的职责是什么做网站前段用什么软件
  • 百度站长工具怎么推广网站汕头百姓网二手房出售
  • 全景网站开发摄影设计素材
  • 南宁商城网站推广公司网站设计的导航栏怎么做