我们知道,我们使用spring的话会写我们的xml文件,里面定义各种各样的bean。定义好了bean之后,使用spring核心容器加载我们的xml文件,然后通过核心容器获取并使用我们定义好的bean。
Spring框架提供了两种核心容器,分别为BeanFactory和ApplicationContext。ApplicationContext是BeanFactory的子接口,我们可以通过ClassPathXmlApplicationContext或者FileSystemXmlApplicationContext来创建该接口实例。
ClassPathXmlApplicationContext会从类路径classPath中寻找指定的XML配置文件,找到并装载完成ApplicationContext的实例化工作,其使用语法如下:
通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。Web服务器实例化ApplicationContext容器时,通常会使用基于ContextLoaderListener实现的方式,此种方式只需要在web.xml中添加如下代码:
创建Spring容器后,就可以获取Spring容器中的Bean。
Spring获取Bean的实例通常采用以下两种方法:
Object getBean(String name):根据容器中Bean的id或name来获取指定的Bean,获取之后需要进行强制类型转换。
<T> T getBean(Class<T> requiredType):根据类的类型来获取Bean的实例。由于此方法为泛型方法,因此在获取Bean之后不需要进行强制类型转换。