Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载xml映射文件的Spring方法_Xml_Spring - Fatal编程技术网

加载xml映射文件的Spring方法

加载xml映射文件的Spring方法,xml,spring,Xml,Spring,因此,我有一个外部xml映射文件,它将加载到我的spring boot应用程序中,并存储在缓存映射中 我知道我可以这样做: public void loadConfiguration() { InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream("model.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactor

因此,我有一个外部xml映射文件,它将加载到我的spring boot应用程序中,并存储在缓存映射中

我知道我可以这样做:

public void loadConfiguration() {
    InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream("model.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(stream);
    doc.getDocumentElement().normalize();
    // parse it and add to a Hashmap

既然我使用的是Spring Boot,那么有没有合适的Spring方法呢?特别是将xml文件作为输入流加载

使用Spring资源抽象,例如,

前面的答案是合适的,但我也可以这样做,因为通过创建一个包含各种其他方法的类,我想声明并调用它,我可以在代码的其他区域注入对象并调用方法

@Component
public class ConfigManager {

    private final String xmlFile = "something.xml";

    @Autowired
    public ConfigManager(ResourceLoader loader) {
        InputStream is = loader.getClassLoader().getResourceAsStream(xmlFile);
        // do something
    }
}
作为spring应用程序一部分的spring类/对象ResourceLoader将通过自动关联注释注入构造函数。考虑到我的xml文件也在我的包中,这段代码将在启动时运行并初始化自己