加载xml映射文件的Spring方法

时间:2016-03-21 03:29:58

标签: xml spring

所以我有一个外部xml映射文件,将在我的spring启动应用程序中加载,该文件将存储在缓存映射中。

我知道我可以这样做:

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,有没有合适的弹簧方式呢?特别是将我的xml文件作为输入流加载。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

@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文件也在我的包中,此代码将在启动时运行并初始化