【问题标题】:Spring: Automatically create a property value with year-month?Spring:自动创建带有年月的属性值?
【发布时间】:2017-07-31 14:37:26
【问题描述】:

我有一个 Spring 4.3 应用程序,它通过 JDBC 读取 PostgreSQL 数据库。但数据库 url 以当前年份和月份结尾,例如backup_2017-03。目前根据需要手动调整。

这个 URL 可以用例如自动创建吗? SpEL?

这里是来自application-context.xml的相关sn-ps:

<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>database.properties</value>
        </list>
    </property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${database.driverClassName}"/>
    <property name="url" value="${database.url}"/>
</bean>

这里是来自database.properties的属性:

database.driverClassName=org.postgresql.Driver
database.url=jdbc:postgresql://test-db3:5432/backup_2017-03

【问题讨论】:

  • 一如既往:您已经尝试过什么?
  • @Sonata:没什么。 SpEL 看起来方式太复杂了。
  • 看看docs.spring.io/spring/docs/current/spring-framework-reference/…,它还包括一些使用 Java 类的示例 (´T(java.lang.Math).random()´),可以帮助您入门。
  • 你说“日期”是指“月”吗?所以'03'是月份?
  • @MortenHaraldsen:是的。固定。

标签: java spring properties spring-4 spring-el


【解决方案1】:

事实证明,SpEL 并不那么复杂:

<property name="url" value="${database.url}#{T(java.time.format.DateTimeFormatter).ofPattern('yyyy-MM').format(T(java.time.LocalDate).now()) }"/>

database.url=jdbc:postgresql://test-db3:5432/backup_

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2017-04-20
    • 2014-01-16
    • 1970-01-01
    • 2014-03-19
    相关资源
    最近更新 更多