【发布时间】:2016-05-02 13:44:39
【问题描述】:
我想做两件事:将属性加载到 bean 中,并在属性更新时更新 bean。
我使用 JBoss Fuse 6.1 来安装我的应用程序包,并在需要读取一些配置的服务器上有一个属性文件。属性具有以下行:
mediaTypeList=JSON,DOCX,TXT
我有一个 Java Bean,它是文件属性的镜像:
public class MediatType {
private List<String> mediaTypeList;
// GETTERs and SETTERs
}
mediaTypeList 属性表示应用程序承认的 HTTP MediaType 列表,并且该列表可能会随着时间的推移而更新,因此应用程序必须看到更改。
应用程序接收文件上传请求,只有当文件类型被承认时,文件才能被上传。为了验证这一点,我需要使用 bean 读取属性文件。
我使用 Apache Camel 2.12 并通过 Java DSL 配置路由。我还阅读了 this 以使用 PropertyPlaceholder 在 bean 中加载属性,但它不符合我的要求。
有没有办法使用 Apache Camel PropertyPlaceholder 来满足上述要求?还是有别的办法?
问候,
【问题讨论】:
-
Fuse 使用 Karaf。因此,您应该能够使用Configuration Admin Service。
-
谢谢@Ralf!我阅读了参考资料,它看起来是我需要的。
-
你使用带有 JBoss fuse 的 Fabric 吗?还是独立的?另外,您使用的是 Blueprint 还是 Spring 或 Java DSL?
-
我使用独立服务器和 Spring 与 Java DSL 相结合。我使用 Java DSL 和 Spring 创建的所有路由构建器来创建注册路由 bean 的骆驼上下文。
-
@Ralf 我将我的配置迁移到 OSGI 蓝图并完美运行。我刚刚配置了一个带有
update-strategy="reload"属性的cm:property-placeholder。谢谢!
标签: java apache-camel jbossfuse property-placeholder