java - java如何使用 Spring Boot 配置文件

  显示原文与译文双语对照的内容
92 0

我有 application.ymlapplication-dev.ymlapplication-dev.yml

  • 我正在使用 Maven 命令 mvn spring-boot:run -Dspring.profiles.active=dev 它不工作,我不能使用 mvn spring-boot:run 來選擇開發概要文件。 我如何選擇它?
  • 文檔說明 java -jar XXX.jar --spring.profiles.active=dev 工作,我嘗試了 -Dspring.profiles.active=dev 但它不工作。 在我的項目中,我使用 java -jar XXX.jar 運行,但如果我使用 java -jar XXX.jar --spring.profiles.active=dev 要選擇dev配置文件,控制台列印這麼多日誌並警告我從未看到過 java -jar XXX.jar,並告訴我 APPLICATION FAILED TO START

那麼如何解決兩個問題? 感謝~

时间: 原作者:

125 5

你不需要三個. yml 文件。 可以在同一個 application.yml 文件中使用 3個連字元( --- ) 將配置文件特定屬性寫入同一個文件。

接下來,為了選擇當前活動配置文件,你可以在 application.yml 文件中指定這裡選項,如下所示:


spring:


 profiles:


 active:


 - local



但是,如果設置環境變數,則將重寫這裡配置,例如: SPRING_PROFILES_ACTIVE = 開發

以下是你需要的樣例文件:


# include common properties for every profile in this section



server.port: 5000 



spring:


 profiles:


 active:


 - local



---


# profile specific properties



spring:


 profiles: local



 datasource:


 url: jdbc:mysql://localhost:3306/


 username: root


 password: root



---


# profile specific properties



spring:


 profiles: dev



 datasource:


 url: jdbc:mysql://<dev db url>


 username: <username>


 password: <password>



原作者:
78 2

如果你使用的是 Spring Boot Maven 插件,請運行:


mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar



( https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html )

112 4

你可以按照一個 application.properties(yml)的配置文件指定屬性,例如這裡的 然後 mvn clean spring-boot:run -Dspring.profiles.active=dev 應該是正確的它對我有用

85 5

@Profile 註釋允許你指示一個組件在一個或者多個指定的配置文件處於活動狀態時有資格註冊。 使用上面的示例,我們可以重寫數據源配置,如下所示:


@Configuration


@Profile("dev")


public class StandaloneDataConfig {



 @Bean


 public DataSource dataSource() {


 return new EmbeddedDatabaseBuilder()


. setType(EmbeddedDatabaseType.HSQL)


. addScript("classpath:com/bank/config/sql/schema.sql")


. addScript("classpath:com/bank/config/sql/test-data.sql")


. build();


 }


}



還有其他的:


@Configuration


@Profile("production")


public class JndiDataConfig {



 @Bean(destroyMethod="")


 public DataSource dataSource() throws Exception {


 Context ctx = new InitialContext();


 return (DataSource) ctx.lookup("java:comp/env/jdbc/datasource");


 }


}



...