java application.xml,将ApplicationContext.xml加载到java内存中

搜索热词

将ApplicationContext.xml加载到java内存中

2,将对应的标签封装成java对象

在BeanConfig中存在一个Map 对应中的多个子元素,其中的name就是Map的键,本身作值;

3,实现加载方法:

package cn.lwuyang.exercise;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.Element;

import cn.lwuyang.xml.utils.XmlUtils;

public class BeanLoadUtils {

public static Map load(String xmlName){

/**

* 0,创建Map集合容器

* 1,获取Document,在获取xml资源的根元素(root),再获取所有子元素,即bean元素

* 2,遍历所有的元素,再把元素映射成一个BeanConfig对象

*

*

* --->>这是一个BeanConfig对象

* 3,再将BeanConfig对象装载到Map集合中

*/

Map map = new LinkedHashMap();

//获取Document对象

Document doc = XmlUtils.getDocument(xmlName);

//得到root元素

Element root = doc.getRootElement();

//得到所有的

List eles = root.elements();

for (Element ele : eles) {

//将Element对象转换为BeanConfig对象

BeanConfig beanConfig = toBeanConfig(ele);

map.put(beanConfig.getId(),beanConfig);

}

return map;

}

/**

* 将转换为BeanConfig对象

* @param ele

* @return BeanConfig对象

*/

public static BeanConfig toBeanConfig(Element beanEle) {

/*

* 1创建BeanConfig对象

* 2获取beanEle的id属性值,调用beanConfig对象的setId()设置它

* 3获取beanEle的className属性值,调用beanConfig对象的setClassName()设置它

*/

BeanConfig beanConfig = new BeanConfig();

String id = beanEle.attributeValue("id");

String className= beanEle.attributeValue("className");

beanConfig.setId(id);

beanConfig.setClassName(className);

/**

* 映射子元素

* 1,获取beanEle的所有子元素

* 2,遍历子元素

* 3,把每一个子元素映射为PropertyConfig对象

* 4,调用BeanConfig对象的addPropertyConfig()方法完成添加操作

*/

List proElements = beanEle.elements();

for (Element propEle : proElements) {

//将转换为PropertyConfig对象

PropertyConfig propertyConfig = toPropertyConfig(propEle);

beanConfig.addPropertyConfig(propertyConfig);

}

return beanConfig;

}

/**

* 将转换为PropertyConfig

* @param propEle

* @return

*/

public static PropertyConfig toPropertyConfig(Element propEle) {

PropertyConfig propertyConfig = new PropertyConfig();

String name = propEle.attributeValue("name");

String value = propEle.attributeValue("value");

String ref = propEle.attributeValue("ref");

propertyConfig.setName(name);

propertyConfig.setValue(value);

propertyConfig.setRef(ref);

return propertyConfig;

}

}

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误表明在指定的路径下找不到名为`application-context.xml`的文件。可能有以下几个原因导致这个问题: 1. 文件路径不正确:请确保`application-context.xml`文件位于正确的路径下。默认情况下,Spring Boot会在`src/main/resources`目录下查找`application-context.xml`文件。如果你将该文件放在其他位置,请确保路径是正确的。 2. 资源文件未正确加载:如果你使用了Maven或Gradle作为构建工具,则需要将`application-context.xml`文件放在测试资源目录下。默认情况下,测试资源目录是`src/test/resources`。请检查文件是否位于正确的资源目录。 3. 文件名错误:请确保文件名拼写正确且大小写匹配。注意区分大小写,文件名应该是`application-context.xml`,而不是其他类似的名称。 如果你确认文件位置和名称都是正确的,但仍然遇到这个错误,可以尝试以下解决方法: 1. 清理并重新构建项目:有时候由于缓存或构建问题,可能需要清理项目并重新构建一次。可以尝试使用构建工具的清理命令,如`mvn clean`或`gradle clean`,然后重新运行单元测试。 2. 检查依赖:请确保项目的依赖项已正确配置。检查是否有缺少的依赖或版本冲突导致无法加载`application-context.xml`文件。 3. 检查文件权限:如果你使用了特定的文件系统权限设置,确保单元测试能够访问和读取`application-context.xml`文件。 希望这些解决方法能帮助你解决问题!如果还有其他疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值