本文共 1629 字,大约阅读时间需要 5 分钟。
在Java项目中,Spring的applicationContext.xml文件有多种解析方式。下面从不同角度解析这些方法,并结合常见场景提供实用技巧。
最常见的方式是通过ClassPathXmlApplicationContext来加载applicationContext.xml。
ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");Object bean = cxt.getBean("beanId");
这种方法适用于标准开发环境中的普通应用。
当项目部署路径明确时,可以使用FileSystemXmlApplicationContext。
ApplicationContext cxt = new FileSystemXmlApplicationContext("C:/path/to/applicationContext.xml");Object bean = cxt.getBean("beanId");
这种方式适合需要严格控制配置文件路径的情况。
通过Resource和XmlBeanFactory来实现基本的xml解析。
Resource res = new ClasspathResource("applicationContext.xml");XmlBeanFactory factory = new XmlBeanFactory(res);Object bean = factory.getBean("beanId");
这种方式适合对Spring容器进行操作时的底层实现。
在Struts等框架中,通过自定义Bean类来灵活调用Spring-managed bean。
public class GetBean { private XmlBeanFactory factory; public GetBean() { Resource res = new ServletContextResource( ServletActionContext.getServletContext(), "/WEB-INF/transaction.xml"); factory = new XmlBeanFactory(res); } public Object getBean(String beanName) { XmlWebApplicationContext ctx = new XmlWebApplicationContext(); ServletContext servletContext = ServletActionContext.getServletContext(); ctx.setServletContext(servletContext); ctx.setConfigLocations(new String[] { "/WEB-INF/transaction.xml" }); ctx.refresh(); return ctx.getBean(beanName); }}
这种方式适合前端直接调用后台Spring bean的场景。
在实际开发中,可以根据项目需求灵活选择适合的方式。例如,在本地开发环境中使用第一种方法,在特定部署环境中使用第二种方法,或者在web应用中结合第四种方法实现特定功能。
转载地址:http://wjcez.baihongyu.com/