不使用PropertyPlaceholderConfigurer加载属性文件

时间:2015-12-09 10:39:33

标签: java javabeans ejb-3.0

我有一个要求,我必须从我的项目中加载包含CQ5连接详细信息的属性文件,并将其作为bean属性提供在我的maven依赖项中添加的jar中。我的项目正在使用此jar连接到CQ,因此我应该能够将CQ连接详细信息作为bean属性提供给该项目。 现在我的项目不是基于spring的,所以我不能使用PropertyPlaceholderConfigurer而作为Maven依赖项添加的jar是基于Spring的。

是否有其他方法可以替换以下bean属性中的值。

<bean id="slingJsonRequestor"       class="com.my.project.content.requestor.SlingRequestor">
    <constructor-arg name="suffix" value="json.js"></constructor-arg>
    <constructor-arg name="resourceBlacklist" ref="slingBlacklistCache"></constructor-arg>
    <property name="url" value="${cq-url}"></property>
    <property name="urlCacId" value="${cq-url-cacid}"></property>
    <property name="urlTemplate" value="${cq-url-template}"></property>
</bean>

请提供非弹簧解决方案来实现这一目标。

1 个答案:

答案 0 :(得分:0)

是的,可以使用Maven。

Maven Resources Plugin

您只需将属性元素和资源元素添加到pom.xml:

<properties>
    <myproperty>A special value</myproperty>
</properties>

<build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
            <include>**/myproperties.properties</include>
        </inlcudes>
      </resource>
    </resources>
</build>

然后如果在myproperties.properties中遇到文本$ {myproperty},maven将用pom.xml中的属性值替换它(与Spring没有什么不同,嘿?)