最近接触到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. C/C++基础----string, vector, array

    1 using声明 方便使用命名空间中的成员,不用每次xxx::yyy 头文件不应该包含using声明(不经意间包含了一些名字) 2 string 表3.1:初始化string对象的方式 string ...

  2. 敏感词文本文件 filtered_words.txt,里面的内容为以下内容,当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights

    敏感词文件内容: 代码: def filtered_words(path='filtered_words.txt'): words = [] with open(path, 'r', encoding ...

  3. DDA画线算法

    #include<stdio.h> #include"graphics.h" #include<math.h> #include<stdlib.h&g ...

  4. java程序怎么在一个电脑上只启动一次,只开一个进程

    目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 方案1: 单进程程序可以用端口绑定 ...

  5. 关于安卓苹果手机安装证书抓https的关键步骤

    苹果有关键步骤!!!

  6. SIP 认证方式

    SIP认证是继承了HTTP的认证方式.HTTP的认证方案主要有Basic Authentication Scheme和Digest Access Authentication Scheme两种.而Ba ...

  7. 第4章 文件和目录(5)_贯穿案例2:mini shell(1)

    6. 贯穿案例2:mini shell(1) [阶段性任务]实现cd.pwd和quit命令 //job.h #ifndef __JOB_H__ #define __JOB_H__ //接收命令行参数 ...

  8. C# AtomicLong

    using System; using System.Threading; /// <summary> /// Provides lock-free atomic read/write u ...

  9. Install hadoop on windows(non-virtual machine, such cygwin)

    DownloadBefore starting make sure you have this two softwares Hadoop 2.7.1 Java – Jdk 1.7+ Extract d ...

  10. sqoop操作之HDFS导出到ORACLE

    注意:在导出前需要先创建待导出的表结构.如果导出的表在数据库中不存在则会报错:如果重复导出多次,表中的数据会重复: ; ; 导出表的所有字段 sqoop export --connect jdbc:o ...