第19章:注解
这本书是第4版,注解这部分的讲解真的差劲,对于不了解的绝对是看不懂,今天我讲我的所想以及在别处看到的总结一下,目的是为了形成一个闭环。不知道自己的理解是不是正确的,只是讲自己的想法整理出来,因为网上似乎没有我想要的一个闭环可以讲的通的。今天的重点不再如何自定义一个注解,网上很多,我们今天就是为了将这个问题想通。
有几点要先理解:1.注解先不要和spring等框架联系上,忘掉它们。2.注解的定义还是应当按照书上所说,就是为了他添加一些信息。3.注解中的方法名就是属性名。4.最重要的,当初我们整理RTTI的时候就知道,类的加载主要是以RTTI加上反射辅助。就是代理也就是加载的时候会使用类对象的相关信息处理。也就是说不管文件什么样,都会生成相关的文件类型对象。
有以上几点作为基础,我们向下分析,类加载或者说文件加载 的时候会检查到注解,并进行相关的处理,这一点是相对比较好做到的,在编译器中就可以完成。当读取到注解时,同样就会找到注解的文件对象(或者说像类对象,因为不是类),获取其中的信息,主要是属性。具体这部分是如何获取的信息https://www.cnblogs.com/yangming1996/p/9295168.html,后半部分就有讲解,将获取到的信息保存起来,此部分信息将类对象与方法等绑定起来。有点像我们当初想容器的实现思想。也就是通过编译时建立的联系作用到运行时产生的效果。
终于找到一句话来概括今天对注解原理的理解了。就是将编译期获取的信息作用在运行时。