为了账号安全,请及时绑定邮箱和手机立即绑定

快码娱乐城平台,最好皇冠现金网

2016.07.29 00:34 5176浏览

本文地址:http://www.bgel.cn/article/11227
文章摘要:快码娱乐城平台,最好皇冠现金网,新时代娱乐城首存,扎金花棋牌游戏官网

很多课程和书都是从什么切点,切面,连接点,通知(前置,后置,返回,异常和环绕通知)来论述AOP的应用的,对于初学者而言要搞清楚啥叫做切面就想当不容易了,何况要搞清楚它们如何运行,流程是什么就更加困难了。
不过不要紧,而笔者认为从其底层实现原理——动态代理模式和反射区介绍它,会更加清晰和明确,也会更为简单一些。
所以今天的第一篇要学习的是反射技术,反射技术是Java的一种在各类框架中非常常用的一门技术。
好,废话不多说我们先来看看一个例子:

package com.learn.chapter1.reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ReflectHello {

    public ReflectHello() {
    }

    public void sayHello(String name) {
        System.err.println("hello " + name);
    }

    public static void main(String []args) {
        try {
            //通过反射生成对象,相当于 ReflectHello refect = new ReflectHello();
            ReflectHello refect = (ReflectHello)Class.forName("com.learn.chapter1.reflect.ReflectHello").newInstance();
            //通过类获取方法,sayHello。
            Method method = refect.getClass().getMethod("sayHello", String.class);
            //相当于语句, refect.sayHello("张三")
            method.invoke(refect, "张三");
        } catch (InstantiationException  //捕捉异常
                IllegalAccessException  ClassNotFoundException  IllegalArgumentException 
                 SecurityException  NoSuchMethodException  InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

好,这个例子可以运行,我们稍微解释一下:
首先我们通过Class.forName的形式加载了一个类的全限定名,那么JDK的类加载器就会去对应的包找到它,用newInstance代表生成一个类的实例(如果方法有构造参数的需要另外写法)。这样变可以得到一个ReflectHello的对象。
然后我们通过类去获取sayHello方法,这里的getMethod,第一个为方法名称,后面的是参数类型,可以是多个。
最后我们使用method.ivoke去反射方法,第一个是类对象,第二个是参数,也可以是多个。这相当于用对象调用了一次sayHello方法,只是这是使用反射调用而已。

好这个Java反射方法已经讲完了,它也是Spring IOC的基础,我们给出了class的全限定名,和一些参数就可以反射创建Bean,和注入属性值了。也是通过这样的一个原理。当然Spring的源码会更完善和复杂,但是基础我们是需要知道的。

点击查看更多内容

本文原创发布于慕课网 ,转载请注明出处,谢谢合作

43人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 去赚学费 帮助中心 APP下载
官方微信
扎金花棋牌游戏官网

举报

0/150
提交
取消
网站地图 天天娱乐官网下载 亚虎娱乐客户端下载 白金娱乐 下载龙8app
豪博国际娱乐 澳门银APP 押大小单双正规app
龙8手机app 神州国际娱乐app 豪博娱乐官方网 吉历娱乐
奥斯卡娱乐线路检测 满堂紅游戲 日博客户端 易胜博体育
优博国际 亚虎娱乐网页版登录 千嬴国际手app下载 澳门赌城在线
天下彩新网站 天游娱乐网站 新宝3娱乐平台 圣亚娱乐城 彩票娱乐网站
汇彩网下载 幸运飞艇五码二期计划 爱赢娱乐官方网站 中国现在的建筑材料 欧亿娱乐登陆
新宝3娱乐平台 百彩网 光大彩票 诺亚娱乐 众购彩票网
网上彩票平台哪个好 大赢家彩票 鸿鑫娱乐 玖富娱乐 丰尚娱乐