一、容器初始化的方式
1.通过类路径加载配置文件
ApplicationContext properties_Context = new ClassPathXmlApplicationContext("applicationContext.xml");
这种方式只需要给容器的文件名就可以,但是文件需放在resources目录下
加载多个文件,中间可以用逗号隔开
2.通过文件路径加载配置文件
ApplicationContext properties_Context = new FileSystemXmlApplicationContext("文件的绝对路径");
这种方式容器文件可以放在任何位置,通过文件的绝对路径可以访问
二、获取Bean的方式
1.通过bean名获取
DataSource dataSource = (DataSource) properties_Context.getBean("bean名");
2.通过bean名获取并指定类型
DataSource dataSource = properties_Context.getBean("bean名",DataSource.class);
这里的DataSource就是类型,是我程序中的一个接口类,通过反射获取类的字节码文件传入类型
3.通过bean类型获取
DataSource dataSource = properties_Context.getBean(DataSource.class);
用这种方式获取bean要注意容器中同类型的bean只能有一个,多个会报错
三、spring容器总结
容器相关
- BeanFactory是Ioc容器的顶层接口,初始化BeanFactory时,加载的bean延迟加载
- ApplicationContext接口是Spring容器的核心接口,初始化时bean立即被加载
- ApplicationContext接口常用初始化类:
- ClassPathXmlApplicationContext
- FileSystemXmlApplicationContext
bean相关
<bean
id="bean的id"
name="别名"
class="类型"
scope="控制bean实例数量,单例或者多例"
init-method="生命周期初始化方法"
destroy-method="生命周期销毁方法"
autowire="自动类型装配"
factory-method="bean工厂方法,用于静态工厂或者实例工厂"
factory-bean="实例工厂bean"
lazy-init="控制bean延迟加载"
/>
bean依赖注入
<bean id="" class="">
<constructor-arg name="" ref=""/> <!-- 构造器注入引用类型-->
<constructor-arg name="" value=""/> <!-- 构造器注入简单类型-->
<constructor-arg type="java.lang.String" index="" value=""/> <!--类型匹配与索引匹配-->
<!--setter方法注入-->
<property name="" ref=""/>
<property name="" value=""/>
<!--集合注入-->
<property name="">
<list>
<value>1</value>
<value>2</value>
<ref bean=""/>
</list>
</property>
</bean>