BeanDefinition?
BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如:
class,表示Bean类型
scope,表示Bean作用域,单例或原型等
lazyInit:表示Bean是否是懒加载
initMethodName:表示Bean初始化时要执行的方法
destroyMethodName:表示Bean销毁时要执行的方法
还有很多...
在Spring中,我们经常会通过以下几种方式来定义Bean:
@Bean
@Component(@Service,@Controller)
这些,我们可以称之申明式定义Bean。
BeanDefinitionReader?
AnnotatedBeanDefinitionReader
可以直接把某个类转换为BeanDefinition,并且会解析该类上的注解,比如
XmlBeanDefinitionReader
可以解析
ClassPathBeanDefinitionScanner
ClassPathBeanDefinitionScanner是扫描器,但是它的作用和BeanDefinitionReader类似,它可以进行扫描,扫描某个包路径,对扫描到的类进行解析,比如,扫描到的类上如果存在@Component注解,那么就会把这个类解析为一个BeanDefinition
BeanFactory?
BeanFactory表示Bean工厂 而ApplicationContext是BeanFactory的一种
ApplicationContext两个比较重要的实现类:
AnnotationConfigApplicationContext
ClassPathXmlApplicationContext
ClassPathXmlApplicationContext跟AnnotationConfigApplicationContext的区别暂不清楚
ASM技术?



