Spring容器的作用:
Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。Bean是Spring管理的基本单位。
Spring中的两个核心接口:
·BeanFactory
·ApplicationContext(继承于BeanFactory)
在Spring中,所有的组件都是被当为Bean来处理的,所以了解Bean如何配置很重要,同时,深入的了解生成和管理这些Bean的Spring容器也很重要。
Spring容器负责创建Bean实例,所以需要知道每个Bean的实现类。在Java的面向接口编程中,是无需关心Bean的具体实现类的。但是在Spring容器必须能够精确的知道每个Bean实例的实现类,所以在Spring的Bean配置文件中需要明确的配置具体的实现类
<bean id="stoneAxe" class="com.domain.StoneAxe"></bean>
上面的代码就是指定了stoneAxe实例的具体实现类是com.domain包下面的StoneAxe类
实例化Spring容器的几种方式:
加载单个配置文件的方式:文件系统方式和类加载路径方式
/*
* 独立的应用程序使用文件系统实例化BeanFactory
*/
FileSystemResource isr=new FileSystemResource("MyXml.xml");
XmlBeanFactory factory=new XmlBeanFactory(isr);
Person p=(Person)factory.getBean("chinese");
p.useAxe();
/*
* 独立的应用程序使用类加载路径的方式实例化BeanFactory
*/
ClassPathResource cpr=new ClassPathResource("MyXml.xml");
XmlBeanFactory factory=new XmlBeanFactory(cpr);
Person p=(Person)factory.getBean("chinese");
p.useAxe();
加载多个配置文件的方式:文件系统方式和类加载路径方式
/*
* 多个属性配置文件类加载路径方式实例化ApplicationContext
*/
ClassPathXmlApplicationContext appContext=new ClassPathXmlApplicationContext(
new String[]{"applicationContext.xml","MyXml.xml"}) ;
BeanFactory factory=appContext;
Person p=(Person)factory.getBean("chinese");
p.useAxe();
/*
* 多个属性配置文件文件系统方式实例化ApplicationContext
*/
FileSystemXmlApplicationContext appContext=new FileSystemXmlApplicationContext(
new String[]{"applicationContext.xml","MyXml.xml"}) ;
BeanFactory factory=appContext;
Person p=(Person)factory.getBean("chinese");
p.useAxe();