В весеннем ботинке он выбирает .свойства
или .yaml
файлы в следующих последовательностях:
приложение-{профиль}.свойства
и варианты YAMLприменение.свойства
и YAML варианты
Проверенный:
- Пружинный ботинок 2.1.2. ВЫПУСК
- Мавен 3
1. Структура проекта
Стандартная структура проекта Maven.
2. @Свойства конфигурации
Прочитайте свойства или файлы yaml позже.
package com.mkyong.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; @Component @ConfigurationProperties("server") public class ServerProperties { private String email; private Listcluster = new ArrayList<>(); public static class Cluster { private String ip; private String path; public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } @Override public String toString() { return "Cluster{" + "ip='" + ip + '\'' + ", path='" + path + '\'' + '}'; } } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public List getCluster() { return cluster; } public void setCluster(List cluster) { this.cluster = cluster; } @Override public String toString() { return "ServerProperties{" + "email='" + email + '\'' + ", cluster=" + cluster + '}'; } }
3. Свойства на основе профиля
Несколько профилей .свойства
пример.
#Logging logging.level.org.springframework.web=ERROR logging.level.com.mkyong=ERROR logging.level.=error #spring spring.main.banner-mode=off spring.profiles.active=dev
#dev environment server.email: dev@mkyong.com server.cluster[0].ip=127.0.0.1 server.cluster[0].path=/dev1 server.cluster[1].ip=127.0.0.2 server.cluster[1].path=/dev2 server.cluster[2].ip=127.0.0.3 server.cluster[2].path=/dev3
#production environment server.email: prod@mkyong.com server.cluster[0].ip=192.168.0.1 server.cluster[0].path=/app1 server.cluster[1].ip=192.168.0.2 server.cluster[1].path=/app2 server.cluster[2].ip=192.168.0.3 server.cluster[2].path=/app3
4. YAML на основе профиля
Несколько профилей .yml
пример. В YAML мы можем создавать несколько профилей с помощью разделителя “—”.
logging: level: .: error org.springframework: ERROR com.mkyong: ERROR spring: profiles: active: "dev" main: banner-mode: "off" server: email: default@mkyong.com --- spring: profiles: dev server: email: dev@mkyong.com cluster: - ip: 127.0.0.1 path: /dev1 - ip: 127.0.0.2 path: /dev2 - ip: 127.0.0.3 path: /dev3 --- spring: profiles: prod server: email: prod@mkyong.com cluster: - ip: 192.168.0.1 path: /app1 - ip: 192.168.0.2 path: /app2 - ip: 192.168.0.3 path: /app3
5. ДЕМОНСТРАЦИЯ
5.1 Приложение для весенней загрузки.
package com.mkyong; import com.mkyong.config.ServerProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application implements CommandLineRunner { @Autowired private ServerProperties serverProperties; @Override public void run(String... args) { System.out.println(serverProperties); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
5.2 Упакуйте и запустите его.
$ mvn package # The 'dev' profile is configured in application.properties # Profile : dev , picks application-dev.properties or YAML $ java -jar target/spring-boot-profile-1.0.jar ServerProperties{email='dev@mkyong.com', cluster=[ Cluster{ip='127.0.0.1', path='/dev1'}, Cluster{ip='127.0.0.2', path='/dev2'}, Cluster{ip='127.0.0.3', path='/dev3'} ]} # Profile : prod, picks application-prod.properties or YAML $ java -jar -Dspring.profiles.active=prod target/spring-boot-profile-1.0.jar ServerProperties{email='prod@mkyong.com', cluster=[ Cluster{ip='192.168.0.1', path='/app1'}, Cluster{ip='192.168.0.2', path='/app2'}, Cluster{ip='192.168.0.3', path='/app3'} ]} # Profile : abc, a non-exists profile $ java -jar -Dspring.profiles.active=abc target/spring-boot-profile-1.0.jar ServerProperties{email='null', cluster=[]}
Скачать Исходный Код
пример свойств $профиль cd-свойства пакет $mvn
Пример YAML $профиль cd-yaml пакет $mvn
Рекомендации
- Пружинная загрузка – Свойства и конфигурация
- Свойства, зависящие от профиля пружинной загрузки
- Пример профилей пружинной загрузки
- Пример профилей пружин
- Пример профилей пружинной загрузки
Оригинал: “https://mkyong.com/spring-boot/spring-boot-profile-based-properties-and-yaml-example/”