1

我有一个弹簧配置文件,其条目如下...

<bean id="beanId" class="a.b.c.d.MyBean">
        <property name="firstProperty" value="report_{date}.xls"/>
</bean>

在我的 java 代码的某个地方,我正在获取这个 bean,然后是它的属性“firstProperty”。

我有点好奇,当我得到属性“firstProperty”的值时,我得到了report_.xls,即report_20130307.xls

我已经搜索了我的所有代码,包括捆绑包、xml,但不清楚我们在哪里设置 {date} 和今天的时间戳。

你知道我们在哪里可以做到这一点吗?

谢谢

4

3 回答 3

0

它是属性占位符机制。

在http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-context-pphc上阅读更多信息。

于 2013-03-07T12:07:23.807 回答
0

在大多数情况下,属性的值是使用表达式语言从属性文件中设置的。像

<bean id="dataSource" class="a.b.c.d.DataSource">
    <property name="databaseUrl" value="{db.url}"/>
</bean>

或者如果属性是另一个 bean 的引用,例如 Object B 是 Object A 的成员变量。

<bean id="refA" class="a.b.c.d.A">
    <property name="b" ref="refB"/>
</bean>

<bean id="refB" class="a.b.c.d.B">
</bean>   
于 2013-03-07T12:08:01.887 回答
0

它非常简单的家伙......正如我们所知,每个属性都会调用setter。在我的情况下也是如此,在 bean 中,我们设置变量“firstProperty”+今天的时间戳,如下所示。

public void setfirstProperty(String firstProperty) {
    this.firstProperty = firstProperty + <methodToReplaceDateStringWithTimeStamp>;
}

谢谢

于 2013-03-07T13:03:22.140 回答