繁体   English   中英

Spring 配置文件未从 application.properties 读取值

[英]Spring Configuration file not reading values from application.properties

我的配置文件的开头是路径 src/main/java/{package name}/DataBaseConfiguration.java:

@Configuration
@PropertySource("classpath:application.properties")
public class DataBaseConfiguration {

    private static final Logger LOGGER = LoggerFactory.getLogger("DataBaseConfiguration.class");

    @Value("${tenantdb.driver.classname}")
    static String tenantDbDriverClassname;

    @Value("${tenantdb.url}")
    static String tenantDbUrl;

    @Value("${tenantdb.username}")
    static String tenantDbUsername;

    @Value("${tenantdb.password}")
    static String tenantDbPassword;

我的 application.properties 文件的路径为 src/main/resources/application.properties:

tenantdb.driver.classname=org.postgresql.Driver
tenantdb.url=jdbc:postgresql://127.0.0.1:5000/tenant_db
tenantdb.username=tenant_admin_user
tenantdb.password=postgres
tenantdb.connectionpool.initialSize=3
tenantdb.connectionpool.maxActive=25
tenantdb.connectionpool.maxIdle=25
tenantdb.connectionpool.minIdle=1

我正在使用 gradle 来构建项目。 我将事物转换为 JAR 并将 JAR 作为 $java -jar /path/to/jar 运行。 代码执行并运行,并记录了我的所有打印调试语句。 但是我的变量的值都是 null 即没有从属性文件中读取内容。

我已确保 application.properties 文件位于 JAR 中。

存档完整性检查服务中的文件。jar

META-INF/
META-INF/MANIFEST.MF
BOOT-INF/
BOOT-INF/classes/
BOOT-INF/classes/com/
BOOT-INF/classes/com/agilysys/
BOOT-INF/classes/com/agilysys/analytics/
BOOT-INF/classes/com/agilysys/analytics/integritycheckservice/
BOOT-INF/classes/com/agilysys/analytics/integritycheckservice/CompareData.class
BOOT-INF/classes/com/agilysys/analytics/integritycheckservice/DataBaseConfiguration.class
BOOT-INF/classes/application.properties

(还有其他文件,但我没有在这里全部打印出来。)

有谁知道为什么会这样?

@PropertySource 不适用于 static 变量。 去掉 static 关键字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM