Spring中的context管理
Spring中IOC容器的初始化:
ApplicationContext即是保存bean對象的容器,故容器本身的初始化,就是通過一系列的配置,將ApplicationContext進行初始化。
而配置ApplicationContext大方向上分為了3中:
一、使用classpath
二、使用本地文件系統中某個文件地址
三、(SpringMVC)web應用中用servlet類或者Listener類來初始化IOC容器
?
而具體下來可以分為12種方式:
1 ClassPathXmlApplicationContext
利用這個實現類來讀取classpath路徑下的xml文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");??
UserDao dao = (UserDao)context.getBean("userDao");
2 String數組形式(已經很少使用了)
- ClassPathXmlApplicationContext?resource?=?new?ClassPathXmlApplicationContext(new?String[]{"applicationContext-ibatis-oracle.xml","applicationContext.xml","applicationContext-data-oracle.xml"});?BeanFactory?factory?=?resource;?UserDao?userDao?=?(UserDao)?factory.getBean("userDao");???
3 ClassPathResource
首先使用ClassPathResource將xml讀取為一個Resource,之后用XmlBeanFactory去加在并讀取該Resource
- Resource?cr?=?new?ClassPathResource("applicationContext.xml");???
- BeanFactory?bf=new?XmlBeanFactory(cr);???
- UserDao?userDao?=?(UserDao)bf.getBean("userDao");?
4 FileSystemResource
Resource rs = new FileSystemResource("D:/tomcat/webapps/wiscom/WEB-INF/classes/applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(rs);
UserDao userDao = (UserDao )factory.getBean("userDao");
此時的xml要么放在project的直接目錄下,要么使用絕對路徑
5 FileSystemXmlApplicationContext
- String[]?path={"WebRoot/WEB-INF/applicationContext.xml",??
- "WebRoot/WEB-INF/applicationContext_task.xml"};???
- ApplicationContext?context?=?new?FileSystemXmlApplicationContext(path);
?