导学:学习spring源码
最近下班在跟着视频在Debug学习spring源码
导学:
JavaBean内省Introspector以及BeanInfo
Introspector.getBeanInfo(Class clazz)方法能够获得一个类的BeanInfo,Introspector内部有个名为beanInfoCache的Map,每次取一个类的beanInfo时,都会在beanInfoCache中缓存。如果没有,则新创建一个。返回并加入beanInfoCache。
得到了BeanInfo,通过BeanInfo能够获取有关此bean的属性方法等信息。
如getPropertyDescriptors()和getmethodDescriptors()得到的都是数组,如PropertyDescriptors[]和MethodDescriptor[]
由于主要是为了学习后面的Spring铺垫,所以我主要看了下PropertyDescriptors
有两个很重要的方法:
Method getReadMethod()
获得应该用于读取属性值的方法。
Method getWriteMethod()
获得应该用于写入属性值的方法。
Method就是反射包中的Method.
获取后就可以调用这个方法对属性进行读或者写的操作啦。
Class对象也能获得Field,并且由对于属性的操作,但是如果是private那是没法操作的。
spring的bean案例
1.创建一个对象
2.main方法测试

可以看出bean的反射
