0
点赞
收藏
分享

微信扫一扫

spring启动(bean工厂预准备)

豆丁趣 2022-04-05 阅读 79
javaspring

spring启动,bean工厂准备工作

refresh()中的prepareBeanFactory(beanFactory)方法,beanFactory的准备工作,对各种属性进行填充

 

 

prepareBeanFactory()

1,设置beanFactory的classloader为当前context的classloader

2,设置beanfactory的表达式语言处理器

3,为beanFactory增加一个默认的propertyEditor,这个主要是对bean的属性等设置管理的一个工具类

4,添加beanPostProcessor,ApplicationContextAwareProcessor此类用来完成某些Aware对象的注入

5,设置要忽略自动装配的接口,这些接口的实现是由容器通过set方法进行注入的,在new ApplicationContextAwareProcessor(this)的invokeAwareInterfaces已经注入,所以在使用autowire进行注入的时候需要将这些接口进行忽略

6.设置几个自动装配的特殊规则,当在进行ioc初始化的如果有多个实现,那么就使用指定的对象进行注入

7.注册beanPostProcessor

8.增加对AspectJ的支持,在java中织入分为三种方式,分为编译器织入,类加载器织入,运行期织入,编译器织入是指在java编译器,采用特殊的编译器,将切面织入到java类中,而类加载期织入则指通过特殊的类加载器,在类字节码加载到JVM时,织入切面,运行期织入则是采用cglib和jdk进行切面的织入。aspectj提供了两种织入方式,第一种是通过特殊编译器,在编译器,将aspectj语言编写的切面类织入到java类中,第二种是类加载期织入,就是下面的load time weaving

9.注册默认的系统环境bean到一级缓存中

prepareBeanFactory()中的属性编辑拓展:

 

new ResourceEditorRegistrar() 属性编辑注册器用来填充具体的属性,在bean创建的时候

beanFactory.addPropertyEditorRegistrar(),为beanFactory增加一个默认的propertyEditor属性编辑器

 

自定义属性编辑器,自定义属性的解析器来完成对应的属性解析工作

 

需求:将省-市-镇的地址解析成address类

1.Address.java

 

2.Customer.java

 

3.AddressPropertyEditor.java

 

4.MyPropertyEditorRegistrar.java

 

5.propertyEditor.xml

6.Test.java

 

 

举报

相关推荐

0 条评论