【问题标题】:spring boot 2: load application.properties manuallyspring boot 2:手动加载application.properties
【发布时间】:2020-03-02 07:27:18
【问题描述】:

是否可以在 SpringApplication.run 中创建数据源时访问 application.properties 值?

我尝试使用 @Value 注入值,但是当我需要这些值时,尚未创建带有 @ConfigurationProperties 的 bean。

【问题讨论】:

  • 你能详细描述一下这个问题吗?

标签: spring-boot datasource startup application.properties


【解决方案1】:

如果您指的是数据源 url、用户名和密码,您可以使用这些键:

spring.datasource.url=your_database_url_and_port_number
spring.datasource.username=your_database_username
spring.datasource.password=your_username_passsword

【讨论】:

    【解决方案2】:

    您需要添加提及属性 POJO 名称的 @EnableConfigurationProperties 注释。

    @SpringBootApplication
    @EnableConfigurationProperties(ConfigProperties.class)
    

    然后在 ConfigProperties 类中你需要添加下面的注解。前缀是你将在属性文件中设置的。

    @ConfigurationProperties(prefix = "mail")
    public class ConfigProperties {
    private String hostName; 
    private int port;
    private String from;
    // standard getters and setters 
    }
    

    属性文件中的值。

    #Simple properties
    mail.hostname=host@mail.com
    mail.port=9000
    mail.from=mailer@mail.com
    

    【讨论】:

    • 如果这不是您想要的,您可以详细说明您的问题陈述。
    • 我已经尝试过您的解决方案,但它不起作用,因为 bean ConfigProperties 是在数据源之后创建的。所以 ConfigProperties == null。
    猜你喜欢
    • 2016-03-04
    • 2020-09-07
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 2018-07-20
    • 2015-01-03
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多