我有一个Spring-Boot/Camel微服务,它通过Restful POST接受带有各种头部参数(1)的XML,通过存储在类路径(2)上的静态xQuery文件转换XML,然后基于结果的值检索使用SQL的关系数据库中的一组XSL模板(3)。然后使用xQuery(4)对这些模板进行转换和组装,然后在将POST方法中的原始转换后的XML在发送到外部服务(6)之前使用转换/组装的XSL模板(5)进行转换。在Camel Spring-Boot微服务中实现静态缓存?
通过将各种步骤的主体存储为交换属性,包括使用处理器从数据库中获取静态XSL模板,现在可以完成所有这些工作。交换属性可以从我的xQuery访问,所以一切都很好。在各个步骤中,我还用临时存储为交换属性的值替换主体。这一切似乎对我来说很笨拙......
我真正的问题是什么是在应用程序启动过程中缓存所有XSL模板的最佳方式,以便后续调用数据库是不必要的?它们是静态的,数量少于10个。我只是想将它们存储在启动时执行的路径中的处理器的经典单例中,然后使用步骤3中使用的处理器访问它们以将交换变量设置为我需要的模板。有没有更好的方法来做到这一点?