如何使用Spring Boot的Profiles
Spring提供了@Profile讓我們為不同的環境建立不同的配置:例如,假設我們有生產,開發和測試等環境。在開發環境中,我們可以啟用開發配置檔案;在生產環境中我們可以啟用生產配置檔案等。
我們可以使用profile檔名稱建立屬性檔案:application-{profile}.properties,我們可以使用名為application-dev.properties和application-production.properties的兩個檔案為開發和生產配置檔案配置不同的資料來源。
在application-production.properties檔案中,我們可以設定MySql資料來源:
可以在application-dev.properties檔案中為dev配置檔案配置相同的屬性,以使用記憶體中的H2資料庫:
可以使用屬性檔案.properties / .yml、命令列和以程式設計等三種方式啟用相應的配置檔案。
啟用方式:
1. 使用 application.properties屬性檔案啟用 .
spring.profiles.active=dev
2. 使用命令列, 當我們在命令列新增一個活動配置時,將取代屬性檔案中的活動配置。
java -jar -Dspring.profiles.active=dev myapp.jar
3. 透過程式設計啟用:
或
4. 在Spring測試中,使用@ActiveProfiles註釋新增活動配置檔案。
5. 系統環境啟用:
export spring_profiles_active=dev
這是Spring Boot配置外部化的靈活。
我們可以使用profile檔名稱建立屬性檔案:application-{profile}.properties,我們可以使用名為application-dev.properties和application-production.properties的兩個檔案為開發和生產配置檔案配置不同的資料來源。
在application-production.properties檔案中,我們可以設定MySql資料來源:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/db spring.datasource.username=root spring.datasource.password=root <p class="indent"> |
可以在application-dev.properties檔案中為dev配置檔案配置相同的屬性,以使用記憶體中的H2資料庫:
spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 spring.datasource.username=sa spring.datasource.password=sa <p class="indent"> |
可以使用屬性檔案.properties / .yml、命令列和以程式設計等三種方式啟用相應的配置檔案。
啟用方式:
1. 使用 application.properties屬性檔案啟用 .
spring.profiles.active=dev
2. 使用命令列, 當我們在命令列新增一個活動配置時,將取代屬性檔案中的活動配置。
java -jar -Dspring.profiles.active=dev myapp.jar
3. 透過程式設計啟用:
@Component @Profile("dev") //也可以配置成@Profile("!dev") public class DevDatasourceConfig .. <p class="indent"> |
或
@SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(MyApplication.class); application.setAdditionalProfiles("dev"); application.run(args); } } <p class="indent"> |
4. 在Spring測試中,使用@ActiveProfiles註釋新增活動配置檔案。
5. 系統環境啟用:
export spring_profiles_active=dev
這是Spring Boot配置外部化的靈活。
相關文章
- Spring Boot中使用profiles 打包Spring Boot
- 帶實習生學Spring Boot 之 Spring ProfilesSpring Boot
- spring.profiles.active=@profiles.active@的含義Spring
- Spring Boot(五):Spring Boot Jpa 的使用Spring Boot
- 如何在spring boot 使用 gitlab的ApiSpring BootGitlabAPI
- Spring Boot(六):如何優雅的使用 MybatisSpring BootMyBatis
- Spring Boot(十一):Spring Boot 中 MongoDB 的使用Spring BootMongoDB
- Spring Boot(三):Spring Boot 中 Redis 的使用Spring BootRedis
- 值得使用的Spring BootSpring Boot
- Spring Boot(十八):使用 Spring Boot 整合 FastDFSSpring BootAST
- Spring Boot 2.0(四):使用 Docker 部署 Spring BootSpring BootDocker
- Spring Boot(十六):使用 Jenkins 部署 Spring BootSpring BootJenkins
- Spring Boot(十二):Spring Boot 如何測試打包部署Spring Boot
- Spring Boot 使用1Spring Boot
- Spring Boot(十七):使用 Spring Boot 上傳檔案Spring Boot
- 如何定製 Spring Boot 的 Banner?Spring Boot
- Spring Boot中如何使用Ostara監控應用?Spring Boot
- Spring Boot如何跑起來Spring Boot
- Spring Boot 非同步框架的使用Spring Boot非同步框架
- JMS 在 Spring Boot 中的使用Spring Boot
- Spring Boot (十九):使用 Spring Boot Actuator 監控應用Spring Boot
- 如何提高在Spring Boot中使用MQ JMS的效率 -Mark TaylorSpring BootMQ
- Spring Boot日誌使用Spring Boot
- 使用 Docker 部署 Spring BootDockerSpring Boot
- Spring Boot Admin 使用Spring Boot
- spring boot中zookeeper使用Spring Boot
- spring boot中redis使用Spring BootRedis
- Spring Boot 中使用 RocketMQSpring BootMQ
- Spring Boot 中使用 SolrCloudSpring BootSolrCloud
- Spring Boot 中使用 kafkaSpring BootKafka
- Spring Boot中Dockerfile使用Spring BootDocker
- spring boot 服務啟動時no active profile set, falling back to default profiles: default的問題Spring Boot
- Spring Boot(三):Spring Boot中的事件的使用 與Spring Boot啟動流程(Event 事件 和 Listeners監聽器)Spring Boot事件
- 如何實現自己的Spring Boot StarterSpring Boot
- Spring Boot(二十):使用 spring-boot-admin 對 Spring Boot 服務進行監控Spring Boot
- 使用Spring Boot實現的GraphQL示例Spring Boot
- Spring Boot中攔截器的使用Spring Boot
- Spring Boot乾貨系列:(十二)Spring Boot使用單元測試Spring Boot