最近接触到java的反射和代理(接触的有点迟了。。。),还是有必要总结下

1. Java的反射

有的时候我们需要在程序运行的时候获取类、方法等信息用于动态运行,这个时候反射就能够帮我们找到类、方法、成员变量

关于反射的原理,java运行时会把类加载到。。。所以运行时可通过反射机制,取到这些信息。spring等框架使用的就是反射代理的机制。

2. Java代理

我理解的代理就是对一个已经存在的类或者方法进行二次封装,比如日志记录,或者做其他的操作,尝到甜头了,真的是非常好用啊!

package com.fxl.test;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method; public class TestProxy{ public static void main(String[] args) throws Throwable { MyProxy pro = new TestProxy().new MyProxy(new TestProxy()); Class c = Class.forName("com.staryea.strategy.test.TestProxy"); Method method = c.getMethod("add", new Class[]{Integer.class,Integer.class}); Object o = pro.invoke(c, method, new Integer[]{2,3});
System.out.println(o);
} public int add(Integer a, Integer b){ return a+b; } class MyProxy implements InvocationHandler{ private Object obj; public MyProxy(Object obj) {
this.obj = obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("调用方法--->"+method.getName()); Object result = method.invoke(obj, args);
System.out.println("result--->"+result);
return result;
}
} }

 JAVA----自定义注解

  关于java的注解,最近好像明白了一些。咋说呢,注解这个小东西还是得和java的反射一起玩儿,不然不起作用,哈哈,注解这个弱受。但是注解这玩意儿还是蛮强大的。

  注解可以是类的注解、方法的注解、属性的注解。我的理解就是类、方法、属性的属性,不知道我理解的对不对。

  注解的使用(先列个提纲,明天再写,领导在旁边,哈哈):

  1. 注解编写。。。

  2. 调用。。。

  3. 其他

Java的反射和代理以及注解的更多相关文章

  1. 利用Java的反射与代理机制实现AOP

    在上一篇文章中,我们讲述了利用Java的反射机制中实现Spring中的IOC,在本文中,我们将更进一步,讲述用Java的反射和动态代理机制来实现Spring的AOP. 一.AOP概述 AOP(Aspe ...

  2. Java基础—反射与代理(新手向)

    第1章 反射与代理 1.1 反射定义 一般情况下,需要一个功能的前提是遇到了某个问题,这里先列举一些问题,然后再通过反射是如何解决了这些问题,来引出反射的定义. 普通开发人员工作中最常见的问题:需要生 ...

  3. Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring

    IOC(Inverse of Control) 可翻译为“控制反转”,但大多数人都习惯将它称为“依赖注入”.在Spring中,通过IOC可以将实现类.参数信息等配置在其对应的配置文件中,那么当 需要更 ...

  4. 跟着刚哥梳理java知识点——反射和代理(十七)

    反射机制是什么?反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有的属性和方法:对于任意一个对象,都能够调用他的一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...

  5. java 结合反射、泛型、注解获取泛型对象

    由于自己也不是特别的理解,不能做过多的解释,因为这些是问过老师做出来的,我还没有学到这里.如果有解释错误的 指出来我改正一下.见谅~(如果学到这里了,会完善) 工具类(SQLUtil)核心代码: pa ...

  6. Java:反射与代理

    Java世界的繁荣反射这一特性有很大功劳,可以获取全面的类型信息. /** * */ package ref; import java.lang.reflect.Field; import java. ...

  7. java通过反射获取bean字段注解@Column中的信息

    直接上代码吧: Field field; Field[] fields=clas.getDeclaredFields(); for (int i = 0; i <fields.length ; ...

  8. java 反射 动态代理

    在上一篇文章中介绍Java注解的时候,多次提到了Java的反射API.与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构.反射API中提供的动态代理也是非常强大 ...

  9. 【译】11. Java反射——动态代理

    原文地址:http://tutorials.jenkov.com/java-reflection/dynamic-proxies.html 博主最近比较忙,争取每周翻译四篇.等不急的请移步原文网页. ...

随机推荐

  1. [UE4]蓝图Get Control Rotation获取人物角色朝向,设置默认人物相机,朝向与controller绑定

    具体应用:控制人物移动方向 也可以使用“CombineRotators”将角色控制器Z轴旋转90°,然后再取正面方向,达到跟“Get Right Vector”一样的效果: 设置关联人物朝向使用控制器 ...

  2. Northwestern European Regional Contest 2017-I题- Installing Apps题解

    一.题意 有一个手机,容量为$C$,网上有$N$个app,每个app有个安装包大小$d_i$,有个安装后的占用空间大小$s_i$,安装app是瞬间完成的,即app的占用空间可以瞬间由$d_i$变成$s ...

  3. 使用CMQ和SCF实现邮件发送

    准备腾讯云 API 调用工具 使用 API 命令行工具来管理和运行无服务器云函数(SCF),下面就先来安装配置该工具. 安装 Python 和 PIP Python 环境是腾讯云命令行工具运行时的必要 ...

  4. python pip使用报错:Fatal error in launcher: Unable to create process using '"'

    在一个系统中共存Python2.python3的时候,pip.pip2.pip3使用的时候会报错: c:\Python35\Scripts>pip3Fatal error in launcher ...

  5. uva-193-图染色-枚举

    题意:n个节点,可用描成黑色或者白色,黑节点和黑节点不能相连,问最多描出多少黑节点 #include <iostream> #include <stdio.h> #includ ...

  6. 知识picture

  7. 0_Simple__simpleP2P

    使用 P2P 特性在 GPU 之间传输.读写数据. ▶ 源代码.包括 P2P 使用前的各项检查,设备之间的数据互拷,主机和设备之间数据传输和相互访问. #include <stdlib.h> ...

  8. WordPress换域名的301跳转方法(经典)

      一.Linux 主机,这个最简单,修改 .htaccess 把 .htaccess 文件 WordPress 部分修改成下面样子 # BEGIN WordPress <IfModule mo ...

  9. VisualSVN:强制必须填写日志信息

    上回将到怎么修改已提交的版本日志信息,而开发项目过程中团队中总是有人忘记添加日志信息注释直接提交,这样会后期维护带来不便. 现在先演示一下效果 当直接提交一个空白日志信息时 有填写日志信息时 那怎么实 ...

  10. shiro用authc配置后登录成功后不能跳转到index页面

    转自:https://ydoing.iteye.com/blog/2248188