当前位置: 首页 > 知识库问答 >
问题:

spring Boot-Last配置文件始终使用

鞠嘉誉
2023-03-14

Spring boot始终选择Application.yml文件中的最后一个配置文件,不管我如何排序。请帮忙。如果我再撕掉头发,我就一根也没有了。

  • 使用spring-boot-starter-parent 1.5.1.发布
  • Maven 3.2.5
  • 我的工件中只有一个application.yml。
  • 我在日志:o.s.boot.springapplication.logStartupProfileInfo 641中看到了这一点-以下配置文件处于活动状态:dev

以下是我的应用程序。yml:

server:
  context-path: /MyApplicationUI
  port: 8480

---
#   LOCAL 
spring:
  profiles: LOCAL
  datasource:
    driver-class-name: net.sourceforge.jtds.jdbc.Driver
    dialect: org.hibernate.dialect.SQLServerDialect
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;
  jpa:
    database-platform: org.hibernate.dialect.SQLServerDialect
    show-sql: true

---
#   DEVELOPMENT 
spring:
  profiles: DEV
  datasource:
    driver-class-name: net.sourceforge.jtds.jdbc.Driver
    dialect: org.hibernate.dialect.SQLServerDialect
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;
  jpa:
    database-platform: org.hibernate.dialect.SQLServerDialect
    show-sql: true

---
#   TEST 
spring:
  profiles: TEST
  datasource:
    driver-class-name: net.sourceforge.jtds.jdbc.Driver
    dialect: org.hibernate.dialect.SQLServerDialect
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;
  jpa:
    database-platform: org.hibernate.dialect.SQLServerDialect
    show-sql: true

我正在通过自己的DataSourceConfig.java加载加密密码:

public class DatasourceConfig {

    @Value("${encrypted-password}")
    private String encryptedPassword;

    /**
     * Sets up the datasource with Spring - decrypting password first
     * 
     * @return Datasource
     */
    @Bean(name = "dataSource")
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource setupDataSource() {
        return DataSourceBuilder.create().password(getSecurePassword()).build();
    }

    /**
     * Decrypts encryptedPassword property
     * 
     * @return decryptedPassword
     */
    private String getSecurePassword() {
        System.out.println("Encrypted password = " + encryptedPassword);
        return new AESEncryptionUtils().decryptString(encryptedPassword);
}
...

我没有多个模块:spring boot总是使用相同的配置文件

万分感谢--谁能给你提供真知灼见,你就感谢谁。

共有1个答案

鲜于念
2023-03-14

这个YAML文件看起来更简洁:

server:
  context-path: /MyApplicationUI
  port: 8480
spring:
  datasource:
    driver-class-name: net.sourceforge.jtds.jdbc.Driver
    dialect: org.hibernate.dialect.SQLServerDialect
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;
  jpa:
    database-platform: org.hibernate.dialect.SQLServerDialect
    show-sql: true
  profiles:
    active: default, local
---
# DEVELOPMENT 
spring:
  profiles: DEV
  datasource:
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;
---
# TEST 
spring:
  profiles: TEST
  datasource:
    username: #insert username# 
    encrypted-password: #insert password#
    url: jdbc:jtds:sqlserver:blah blah stuff here;

您不需要一直重复所有的事情,只需要在概要文件之间更改的“部分”。默认情况下,使用此配置,将使用的配置文件为:local和/或default

如果您想要使用一个不同的选项,您必须将这个开关--spring.profiles.active=dev(或者您想要的选项的标识符)传递给命令行上的工件(或者脚本、Docker容器等)。

 类似资料:
  • 我正在使用spring Boot1.5.2,并使用配置文件,但我发现了一个非常奇怪的事情。 在application.yml中配置 application-dev.yml 看起来一切都还好。 但是当我尝试运行jar时,它总是使用dev概要文件,尽管显示我们现在使用概要文件。 我不知道我的yml配置哪里出了问题。我尝试将所有配置文件都包含在一个application.yml文件中。但是应用程序仍然使

  • 问题内容: 我正在尝试使用Maven 3 在Spring Boot应用程序中设置活动配置文件。在我的pom.xml中,将默认的活动配置文件和属性spring.profiles.active设置 为development: 但是每次我运行应用程序时,都会在日志中收到以下消息: 并且将SpringBoot配置文件设置为默认值(读取application.properties而不是application

  • 寻找在Springboot应用程序中配置多个配置文件特定属性文件的最佳方法。下面是一个例子: -资源  · --application.properties  · · · · · --德夫             --application-dev.properties             --ldap-dev.properties             --Quartz-Dev.Prope

  • 本文向大家介绍springboot+log4j.yml配置日志文件的方法,包括了springboot+log4j.yml配置日志文件的方法的使用技巧和注意事项,需要的朋友参考一下 一,Maven 依赖 pom.xml配置 1, 去掉默认日志,以便切换到log4j2的日志依赖 2, 然后添加如下两个日志依赖 二,在工程根目录下添加 lo4g2.yml 配置文件 2, 配置文件内容 三,在工程根目录下

  • 问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题

  • 使用gdb配置文件 在上面可以看到,为了进行源码级调试,需要输入较多的东西,很麻烦。为了方便,可以将这些命令存在脚本中,并让gdb在启动的时候自动载入。 以lab1为例,在lab1/tools目录下,执行完make后,我们可以创建文件gdbinit,并输入下面的内容: target remote 127.0.0.1:1234 file bin/kernel 为了让gdb在启动时执