
spring application.xml在项目中的几种解析方式
发布日期:2021-05-20 11:55:32
浏览次数:26
分类:精选文章
本文共 1629 字,大约阅读时间需要 5 分钟。
在Java项目中,Spring的applicationContext.xml文件有多种解析方式。下面从不同角度解析这些方法,并结合常见场景提供实用技巧。
一、基于类路径的applicationContext.xml解析
最常见的方式是通过ClassPathXmlApplicationContext来加载applicationContext.xml。
ApplicationContext cxt = new ClassPathXmlApplicationContext("applicationContext.xml");Object bean = cxt.getBean("beanId");
这种方法适用于标准开发环境中的普通应用。
二、基于文件系统的applicationContext.xml解析
当项目部署路径明确时,可以使用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容器进行操作时的底层实现。
四、jsp 页面中的applicationContext.xml解析
在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应用中结合第四种方法实现特定功能。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月24日 00时31分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vscode设置eslint保存文件时自动修复eslint错误
2019-03-11
Remove Extra one 维护前缀最大最小值
2019-03-11
Linux操作系统的安装与使用
2019-03-12
C++ 继承 详解
2019-03-12
OSPF多区域
2019-03-12
Docker入门之-镜像(二)
2019-03-12
去了解拉绳位移编码器的影响因素
2019-03-12
无法初始化Winsock2.2处理
2019-03-12
vMotion 操作失败进度卡在14% ,报错: Operation Timed out
2019-03-12
重置UAG Application admin密码
2019-03-12
Horizon Daas租户管理平台扩展分配时报:内部错误
2019-03-12
嵌入式系统试题库(CSU)
2019-03-12
【自考】之信息资源管理(一)
2019-03-12
setup facatory9.0打包详细教程(含静默安装和卸载)
2019-03-12
Linux kernel pwn --- CSAW2015 StringIPC
2019-03-12
IDEA 找不到 Persistence窗口解决办法
2019-03-12
C++ Primer Plus读书笔记:循环读取(错误处理)
2019-03-12
Form窗体属性
2019-03-12
vue 错误收集
2019-03-12