Spring(四):Bean实例化及属性注入
-
通过前面的学习我们了解到spring容器帮助我们管理对象和维护对象的依赖关系,其实spring就是通过工厂模式实现的
-
读取配置文件
-
根据配置信息,通过反射方式创建对象
-
-
二、工厂接口关系
-
-
我们一般会使用ClassPathXmlApplication或者FileStreamXmlApplicationContext,不会直接使用BeanFactory
-
ClassPathXmlApplicationContext根据类路径获取
-
FileStreamXmlApplicationContext根据文件路径获取
-
-
BeanFactory采用的是延迟加载的方式加载bean,只有在去getBean时才会去加载该bean
-
- ApplicationContext在加载配置文件时就会加载所有的bean
-
-
三、Bean实例化的几种方式
-
我们最常用的就是无参构造方式去实例化Bean
-
无参构造方式:
-
-
注意这种方式,在bean类中必须提供一个无参的构造函数
-
-
-
静态工厂方式
-
-
package com.zhurouwangzi.entity; public class PersonFactory { public static Person createPerson(){ return new Person(); } }
-
-
-
实例工厂方式
-
package com.zhurouwangzi.entity; public class PersonFactory { public Person createPerson(){ return new Person(); } }
-
-
我们运行一下可以看到效果相同
-
-
四、属性注入
-
在spring中属性注入有两种:构造器注入和setter注入
-
构造器注入
-
在Person类中添加一个带参的构造函数
-
-
-
运行看效果:
-
-
注意这里我们无参的构造函数没有被执行
-
-
setter方法注入
-
-
-