首页 > 编程语言 > 详细

加载spring上下文几种方式汇总

时间:2016-01-07 02:11:24      阅读:384      评论:0      收藏:0      [点我收藏+]

?

一:Spring中的几种容器都支持使用xml装配bean,包括:?

  • ? ? XmlBeanFactory ,?
  • ? ? ClassPathXmlApplicationContext ,?
  • ? ? FileSystemXmlApplicationContext ,?
  • ? ? XmlWebApplicationContext?

加载这些容器的配置文件的xml有一下几种常见的方法:?
1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)?

Java代码??bubuko.com,布布扣
  1. Resource?resource?=?new?ClassPathResource("appcontext.xml");??
  2. BeanFactory?factory?=?new?XmlBeanFactory(resource);??

????? 从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!?
2:引用应用上下文用ClassPathXmlApplicationContext?
Java代码??bubuko.com,布布扣
  1. ApplicationContext?factory=new?ClassPathXmlApplicationContext("classpath:applicationContext.xml");???
  2. ApplicationContext?factory=new?ClassPathXmlApplicationContext("conf/userConfig.xml");???//?src/conf?目录下的???
  3. ApplicationContext?factory=new?ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");??

3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext?
Java代码??bubuko.com,布布扣
  1. ApplicationContext?factory=new?FileSystemXmlApplicationContext("src/applicationContext.xml");????????
  2. ApplicationContext?factory=new?FileSystemXmlApplicationContext("classpath:appcontext.xml");??
  3. ApplicationContext?factory=new?FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");??
  4. ApplicationContext?factory=new?FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");??

注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中?
Java代码??bubuko.com,布布扣
  1. String[]?configs?=?{"applicationContext.xml","user_spring.xml"};??
  2. ApplicationContext?ctx?=?new?ClassPathXmlApplicationContext(configs);??
  3. //ApplicationContext?ctx=new?FileSystemXmlApplicationContext(configs);??
  4. AbstractDao?myUserDAO?=??(AbstractDao)?ctx.getBean("userDao");????????

4:Web工程定制的加载方法 XmlWebApplicationContext?
Java代码??bubuko.com,布布扣
  1. ServletContext?servletContext?=?request.getSession().getServletContext();??
  2. 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配置,应用服务去加载?
??
Xml代码??bubuko.com,布布扣
  1. <servlet>??
  2. ????<servlet-name>app</servlet-name>??
  3. ????<servlet-class>??
  4. ??????????????org.springframework.web.servlet.DispatcherServlet??
  5. ????</servlet-class>??
  6. ????<context-param>??
  7. ??????????<param-name>contextConfigLocation</param-name>??
  8. ??????????<param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value>??
  9. ????</context-param>??
  10. ????<load-on-startup>1</load-on-startup>????
  11. ?</servlet>??

2:在/WEB-INF/applicationContext.xml配置应用服务去加载?
? 可以在applicationContext.xml中用import引入其他的配置文件?
??
Xml代码??bubuko.com,布布扣
  1. <import?resource="user_spring.xml"?/>??

?

加载spring上下文几种方式汇总

原文:http://henu-zyy.iteye.com/blog/2268956

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!