spring怎么读取xml文件(java 请问下SpringMVC中Spring是怎么去解析XML)

本文目录
- java 请问下SpringMVC中Spring是怎么去解析XML
- spring读取不到applicationContext.xml文件 项目里build了junit包,但是还是不能用@Test 多谢大神了!
- Spring中加载XML文件的方式
- 如何使用spring解析xml文件
- 如何让是spring启动时加载一个类这里类实现了读取xml配置数据到内存中(不是属性文件)
java 请问下SpringMVC中Spring是怎么去解析XML
spring使用了jdk自带的jaxp解析技术,没有使用dom4j,所以spring工程里面也并没有依赖dom4j的jar。你可以看看XmlBeanDefinitionReader中的documentLoader属性,使用了DefaultDocumentLoader类来初始化的,DefaultDocumentLoader中的引用(import)都是JDK自带的类,DefaultDocumentLoader是spring用来解析xml的类。
spring读取不到applicationContext.xml文件 项目里build了junit包,但是还是不能用@Test 多谢大神了!
第一种方式:路径修改为/com/test/applicationContext.xml
第二种方式:把config设为源码目录,config文件夹右键-Build Path-Use as Source Folder
Spring中加载XML文件的方式
spring 中加载xml配置文件的方式 好像有 种 xml是最常见的spring 应用系统配置源 Spring中的几种容器都支持使用xml装配bean 包括
XmlBeanFactory
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
XmlWebApplicationContext
一 XmlBeanFactory 引用资源
Resource resource = new ClassPathResource( appcontext xml )
BeanFactory factory = new XmlBeanFactory(resource)
二 ClassPathXmlApplicationContext 编译路径
ApplicationContext factory=new ClassPathXmlApplicationContext( classpath:appcontext xml )
ApplicationContext factory=new ClassPathXmlApplicationContext( appcontext xml ) // src目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext( conf/appcontext xml ) // src/conf 目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext( file:G:/Test/src/appcontext xml )
三 : 用文件系统的路径
ApplicationContext factory=new FileSystemXmlApplicationContext( src/appcontext xml )
//使用了 classpath: 前缀 作为标志 这样 FileSystemXmlApplicationContext 也能够读入classpath下的相对路径
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 )
四 XmlWebApplicationContext 是专为Web工程定制的
ServletContext servletContext = request getSession() getServletContext()
lishixinzhi/Article/program/Java/ky/201311/28211如何使用spring解析xml文件
Spring框架从2.0版本开始,提供了基于Schema风格的XML扩展机制,允许开发者扩展最基本的spring配置文件(一般是classpath下的spring.xml)。试想一下,如果我们直接在spring.xml中加入一个自定义标签《mytag id="aty"》《/matag》,会发生什么呢?spring框架启动的时候会报错,因为spring根本不认识我们自定义的《mytag》,这样对spring.xml的校验就会失败,最终结果就是框架不能启动。有什么方法,能够让spring认识并加载解析我们自定义的《mytag》呢?这就是spring提供的xml扩展机制。我们可以在spring.xml中加入自己的标签,之后spring会帮我们解析并纳入自己的管理范围内,这也就是说我们扩展了spring的功能。
现在我们来看下怎么实现这个功能,可以参考spring帮助文档中的extensible-xml.html。我们知道如果在需要在spring.xml中配置数据源,需要进行如下的配置:
《bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"》
《property name="driverClassName" value="com.mysql.jdbc.Driver" /》
《property name="url" value="jdbc:mysql://localhost:3309/sampledb" /》
《property name="username" value="root" /》
《property name="password" value="1234" /》
《/bean》
如何让是spring启动时加载一个类这里类实现了读取xml配置数据到内存中(不是属性文件)
《bean id="readXmlService" class="com.xxx.xxx.readXmlServiceImpl" init-method="init"》《/bean》
这样配置你的读取xml的服务,spring框架会在启动的时候自动跑 readXmlServiceImpl中的init方法,所以你只要将读取xml的过程放到init方法里,那在spring启动的时候就会自动将xml中数据读取到内存中。

更多文章:
vbnet连接sql数据库实例(请各位大侠给出用VB.NET连接oracle数据库并执行sql查询语句的代码示例,谢谢!!)
2026年7月21日 09:15
python编程实例详解(python函数变量及代码利用是什么python函数变量及代码利用说明)
2025年8月3日 06:00
已知大写字母a的ascii码值十进制(已知大写字母a的ASCII码值十进制表示为65那么asii码值为十进制数68的字母是)
2026年8月11日 21:30
struts2拦截器和过滤器的区别(struts2拦截器的作用是什么(它拦截什么)过滤器的作用是什么呢(过滤什么))
2025年6月18日 21:15
sql语句优化面试(面试问到 数据库性能优化 怎么回答 我是Oracle数据库)
2025年7月30日 02:15
commerce和commercial的区别(commercial名词)
2026年7月6日 01:00
shell脚本写加减乘除运算(用shell做个加减乘除运算)
2025年6月20日 21:30
keystone蝶阀中国代理(美国泰科TYCO阀门授权代理商)
2025年9月8日 02:45
日期型的函数datediff(datediff函数怎么用啊)
2025年12月17日 06:15
加拿大study permit(加拿大的STUDY PERMIT 里,签证官指定学校这句话什么意思 )
2026年8月7日 06:45
小米13发布会为何延期(小米和华为的冬季新品发布会为什么延期)
2026年6月3日 04:30
rank函数如何自动填充(excel根据最终得分列数据公式填充排名列数据)
2026年3月12日 12:15
rsync协议(为什么rsync服务对应的端口显示所属进程是xinetd而非rsync)
2025年11月11日 08:30
reset current branch to here(resetcurrentbranchtohere会覆盖本地代)
2025年11月13日 21:30
c语言中printf与scanf的先后顺序(c语言中printf 跟scanf执行顺序颠倒)
2026年2月26日 06:00
ASP.NET MVC 4框架揭秘:Controller类型的缓存?RxCache缓存框架
2026年6月1日 06:00
![vb 全局数组 如何在子过程里定义全局性的数组,在主函数里可以使用?在java中定义了一个二维数组,int[][] a = null;a[1] = new int[]{1,2,3};这样定义对不对](/static/images/nopic/15.jpg)










