Spring Ioc容器的设计主要基于BeanFactory和ApplicationContext两个接口
1.BeanFactory
创建BeanFactory实例时,需要提供XML文件的绝对路径。test1(Hello World项目)中main方法修改代码如下:
package test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import dao.TestDao;
public class Test {
public static void main(String[] args) {
//初始化Spring容器,加载配置文件
BeanFactory beanFac = new XmlBeanFactory(new FileSystemResource("C:\\Users\\34201\\Desktop\\spring框架\\test_0308\\test2\\src/applicationContext.xml"));
//通过容器获取test实例
TestDao tt = (TestDao)beanFac.getBean("test");
tt.sayHello();
}
}
2.ApplicationContext
创建ApplicationContext接口实例通常有三种方法:
1.通过ClassPathXmlApplication创建
2.通过FileSystemXmlApplicationContext创建
3.通过Web服务器实例化ApplicationContext容器
以下代码使用了第一种方法,通过ClassPathXmlApplication创建ApplicationContext接口,在之前的Hello World项目中我们用的也是此方法。
package test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import dao.TestDao;
public class Test {
public static void main(String[] args) {
// 初始化Spring容器ApplicationContext,加载配置文件
ApplicationContext appCon = new ClassPathXmlApplicationContext("applicationContext.xml");
TestDao tt = (TestDao) appCon.getBean("test");// test为配置文件中的id
tt.sayHello();
}
}
`