随笔分类 - Spring源码
摘要:执行流程 根据classpath:* + 包名获取所有.class文件 遍历Resouce资源文件。 判断当前resouce文件所指的类是否拥有component注解,也就是判断该bean是否要扫描到spring容器中。 构建beanDefiniation,并将资源和类全限定包名设置上去。 在上一步
阅读全文
摘要:BeanDefinition BeanDefinition用于存储bean信息,比如bean是单例还是原型、bean的类型以及是否懒加载等等,Spring判断bean是否被注册是根据判断判断容器中是否存在该BeanDefinition的,除了使用注解和xml的方式对bean进行注册,开发者还可以自己
阅读全文
摘要:执行流程 从上一章分析可得,spring创建bean的流程如下所示 获取class信息 → 根据class信息调用构造方法创建对象 → 判断成员变量中是否有依赖注入注解并进行注入操作 → 初始化前(@PostConstruct) → 初始化(实现InitializingBean接口) → 初始化后(
阅读全文
摘要:创建bean流程 判断类中成员变量是否有指定注解 可以利用反射获取类信息, 如获取类中所有的方法信息,然后根据isAnnotationPresent方法来获取方法上是否标识指定注解 如以下所示 首先定义了一个class类 在类中有一个方法标识PostConstruct注解 @Component pu
阅读全文