一:Spring中的几种容器都支持使用xml装配bean,包括:?
- ? ? XmlBeanFactory ,?
- ? ? ClassPathXmlApplicationContext ,?
- ? ? FileSystemXmlApplicationContext ,?
- ? ? XmlWebApplicationContext?
加载这些容器的配置文件的xml有一下几种常见的方法:?
1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)?
- Resource?resource?=?new?ClassPathResource("appcontext.xml");??
- BeanFactory?factory?=?new?XmlBeanFactory(resource);??
????? 从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!?
2:引用应用上下文用ClassPathXmlApplicationContext?
- ApplicationContext?factory=new?ClassPathXmlApplicationContext("classpath:applicationContext.xml");???
- ApplicationContext?factory=new?ClassPathXmlApplicationContext("conf/userConfig.xml");?????
- ApplicationContext?factory=new?ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");??
3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext?
- ApplicationContext?factory=new?FileSystemXmlApplicationContext("src/applicationContext.xml");????????
- ApplicationContext?factory=new?FileSystemXmlApplicationContext("classpath:appcontext.xml");??
- ApplicationContext?factory=new?FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");??
- ApplicationContext?factory=new?FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");??
注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中?
- String[]?configs?=?{"applicationContext.xml","user_spring.xml"};??
- ApplicationContext?ctx?=?new?ClassPathXmlApplicationContext(configs);??
- ??
- AbstractDao?myUserDAO?=??(AbstractDao)?ctx.getBean("userDao");????????
4:Web工程定制的加载方法 XmlWebApplicationContext?
- ServletContext?servletContext?=?request.getSession().getServletContext();??
- ApplicationContext?ctx?=?WebApplicationContextUtils.getWebApplicationContext(servletContext?);??
注:web.xml里面可以定义两种参数:?
??????? 1、application范围内的参数,存放在servletcontext中。<context-param>中的参数(可以指定多个文件)?
??????? 2、servlet范围内的参数,只能在servlet的init()方法中取得, <init-param>中的参数,在init方法中用this.getInitParameter("param1")获取?
二:要是spring配置多个xml,并且这些文件相互应用的加载方式?
1:在web.xml配置,应用服务去加载?
??
- <servlet>??
- ????<servlet-name>app</servlet-name>??
- ????<servlet-class>??
- ??????????????org.springframework.web.servlet.DispatcherServlet??
- ????</servlet-class>??
- ????<context-param>??
- ??????????<param-name>contextConfigLocation</param-name>??
- ??????????<param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value>??
- ????</context-param>??
- ????<load-on-startup>1</load-on-startup>????
- ?</servlet>??
2:在/WEB-INF/applicationContext.xml配置应用服务去加载?
? 可以在applicationContext.xml中用import引入其他的配置文件?
??
- <import?resource="user_spring.xml"?/>??
?