我们都知道要访问Spring bean 我们就必须得到一个ApplicationContext 或者 BeanFactory 对象, BeanFacotry是spring中比较原始的Factory,ApplicationContext更强大,可以在服务器启动的时候自动实例化所有的bean,而 BeanFactory只有在调用getBean()的时候才去实例化那个bean。事实上Spring2相关的web应用默认使用的是ApplicationContext对象去实例化bean。
spring为ApplicationContext提供的3种实现分别 为:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext和 XmlWebApplicationContext,其中XmlWebApplicationContext是专为Web工程定制的。前两种方式适合采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
1. FileSystemXmlApplicationContext
eg1. 加载单个配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml");
eg2.加载单个配置文件
String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new FileSystemXmlApplicationContext(locations ); //
eg3.
根据具体路径加载文件
ApplicationContext ctx =new FileSystemXmlApplicationContext("D:/project/bean.xml");//
2. ClassPathXmlApplicationContext
eg1. 加载单个文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
eg2. 加载多个文件
String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new ClassPathXmlApplication(locations);
3、XmlWebApplicationContext
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);