<bean id="FileWriter" class="com.sample.FileWriter">
<constructor-arg value="${path.to.output}"/>
<constructor-arg value="${filename}"/>
</bean>
我想使用spring从属性文件传递今天日期的文件名,以便在类中不进行硬编码。这可能吗?
文件名我想传递F_IN_1243_MMDDYYYY.xml,其中MMDDYYYY是今天的日期?
答案 0 :(得分:1)
您应该能够创建bean原型范围并在属性表达式中包含java方法调用。类似的东西:
<bean id="FileWriter" class="com.sample.FileWriter" scope="prototype">
<constructor-arg value="${path.to.output}"/>
<constructor-arg value="#{T(Utils).filename()}"/>
</bean>
其中Utils.filename ()
是一个调用SimpleDateFormat并组成文件名的实用程序方法。
答案 1 :(得分:0)
您是否可以在构造函数或FileWriter的其他方法中获取Calendar对象的当前日期并使用传入的文件名作为文件前缀?
答案 2 :(得分:0)
您可以使用Spring Expression Language(SpEL)。
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html
您应该能够做到这样的事情:
<constructor-arg value="#{new SimpleDateFormat('MMddyyyy').format(new Date())}"/>
使用#而不是$并添加必要的依赖项。