java - 如何设置 OSGi 和非 OSGi WAR 以使用外部属性文件

标签 java spring configuration osgi war

我有一个使用 Spring 的项目,它可以在 OSGi 容器(即 Karaf)中作为 .war 运行,或者在非 OSGi 容器(例如 Jetty)中作为 .war 运行。 .war 由单独的 Maven 项目创建。

目前,我的项目有一个位于 .war 内部的属性文件,是使用 Spring 中的 PropertyPlaceholderConfigurer bean 从 .war 的类路径中获取的。我们想要外部化该属性文件。为两个 .war 设置外部属性文件的最佳/最简单方法是什么?

我知道 OSGi .war 可以使用 osgix:cm-properties 设置我们的 PropertyPlaceholderConfigurer bean 来引用属性文件,但我不确定这是否也适用于非 OSGi .war。 (或者会吗?)

最佳答案

我想说你只需要确保每个组合都有不同的 spring xml 文件。 例如,您将 spring-app.xml 文件作为中央 spring 配置文件。现在,当通过 spring list 条目使用 spring 扩展器时,将其与 spring-osgi-properties.xml 结合起来;当在 std 中使用时,将其与 spring-std-properties.xml 结合起来。 jetty 容器。

关于java - 如何设置 OSGi 和非 OSGi WAR 以使用外部属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091103/

相关文章:

c++ - 将 CMake 与同一语言的多个编译器一起使用

java - 使用类的方法结果中的通用类

Java 多重扫描器

spring - 在 Spring Cloud Config 中存储 Spring Cloud Vault token

java - 查询从日期时间字段返回一天的记录

python - 如何在 python 3 中定义 configparser

java - 注释验证很慢

java - 如何转义空对象引用?

java - 按钮无法正常工作 - Java Spring Thymeleaf

configuration - 如何在 VS 2010 中更改轮廓悬停颜色?