1.循环依赖
l 在处理循环引用时,Spring会提前暴露Bean
l 通过属性注入可以创建完整的对象
l 当前创建对象存放在集合中维护,如果创建过程中发现当前对象在集合中,说明产生循环依赖
l 以下2种情况无法处理
l 构造器注入的循环依赖
l Prototype的循环依赖
l AbstractAutowireCapableBeanFactory.setAllowCircularReferences
默认允许循环依赖,可以设置为完全禁止
2.**同名**bean
l 如果在定义bean的时候 ,bean的名字相同,那么后定义的bean默认会覆盖之前的bean定义
l DefaultListableBeanFactory.setAllowBeanDefinitionOverriding关闭重名
3.注解还是配置
l xml的好处
l 代码可读性和层次结构更清晰
l 降低模块耦合
l 修改xml配置不需要重新编译
l xml的缺点
l 使用较为复杂
l Xml配置大大增加代码量
l 注解的好处
l 方便快捷,提高效率
l 注解的缺点
l 对配置的修改要重新编译
l 类的关系不如xml明了
4.方法查找和替换
l 运行使用Spring实现甚至是替代一个Bean的方法
l LookupOverrideMethodInterceptor
ReplaceOverrideMethodInterceptor
5.枚举支持
l FieldRetrievingFactoryBean
l 通过反射获得给定类的某一个字段的值
l 枚举属于静态字段
使用Spel
6.二次代理问题
l 配置了多个AutoProxyCreator
l Aop:config使用的是AspectJAwareAdvisorAutoProxyCreator
l AspectJAwareAdvisorAutoProxyCreator 默认会启动所有配置的advisor
l DefaultAdvisorAutoProxyCreator
也会对符合条件的所有advisor进行处理
本作品采用知识共享署名 4.0 中国大陆许可协议进行许可,欢迎转载,但转载请注明来自御前提笔小书童,并保持转载后文章内容的完整。本人保留所有版权相关权利。