Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan masalah kegagalan untuk memulakan springboot ditentukan profil
Biasanya, pakej balang springboot dimulakan melalui –spring.profiles.active=dev, yang boleh dibaca Aplikasi -maklumat fail konfigurasi -dev.yml, mulakan
Permulaan ini sangat pelik Memasuki parameter persekitaran permulaan ini masih tiada kesan,
Ia sangat menakutkan, sangat tidak dijangka!
Daripada membaca application-dev.yml, ia membaca fail application.yml lalai
Walau bagaimanapun, menggunakan parameter permulaan jvm : java -jar -Dspring.profiles.active=dev, ia boleh dimulakan, yang membuktikan bahawa fail konfigurasi dev adalah sah
penemuan kelas kemasukan aplikasi:
public static void main(String[] args){ SpringApplication.run(Application.class,args); }
Apabila memanggil kaedah run, tiada args dihantar masuk!
Baca kod sumber dan ketahui, masukkan parameter permulaan, kemudian huraikan parameter masuk dan tetapkan sifat
SpringBoot membolehkan kami mempunyai berbilang fail konfigurasi, dan kemudian memuatkan fail konfigurasi yang sepadan secara dinamik berdasarkan keadaan apabila projek dimulakan. Kini terdapat tiga konfigurasi, satu fail konfigurasi lalai (application.properties: kerana ia adalah nama yang ditentukan oleh SpringBoot, jadi ia dipanggil fail konfigurasi lalai) dan dua fail konfigurasi persekitaran yang ditentukan (application-prod .properties dan application-dev .properties: berkaitan dengan persekitaran yang sepadan, jadi ia dipanggil fail konfigurasi persekitaran yang ditetapkan)application-dev.propertiesMaklumat konfigurasi pembangunan simulasi
person.name=ZhangSan person.age=18
application-prod.properties
Simulasikan maklumat konfigurasi pengeluaranperson.name=LiSi person.age=19
application.properties
Nyatakan nombor port perkhidmatan dan fail konfigurasi yang perlu dimuatkan apabila projek bermula, SpringBoot akan secara automatik memadankan aplikasi-{spring.profiles.active}.properties, dan kemudian mencari fail konfigurasi application-dev.propertiesserver.port=8080 spring.profiles.active=dev #我们可以指定SpringBoot在启动时加载那个对应的配置文件Kod kes
dicipta kelas Orang kes dan biarkannya Apabila dibuat seketika, baca maklumat daripada fail konfigurasi, baca peraturan: orang.{property name}, buat tika baharu Orang dan tambahkannya pada bekas IOC.
Buat permintaan dapatkan dan kembalikan contoh Person kami. Mari lihat jika nilai atribut perosn boleh memuatkan fail konfigurasi yang sepadan mengikut atribut spring.profiles.active yang kami tentukan dalam fail konfigurasi application.properties nilai dalam contoh nilai yang dijangkakan?@ConfigurationProperties(prefix = "person") //初始化的时候从配置文件中读取person.{属性名}的信息赋值给当前对象 @Data public class Person { private String name; private Integer age; } @Configuration //配置文件信息,将Person实例注入到IOC容器中 public class MyConfig { @Bean public Person person() { return new Person(); } }@RestController //Buat permintaan dapatkan dan kembalikan contoh Person kami. Mari lihat jika nilai atribut perosn boleh ditentukan dalam fail konfigurasi spring mengikut aplikasi. Fail konfigurasi properties. Atribut .profiles.active memuatkan fail konfigurasi yang sepadan Adakah nilai dalam instance Person adalah nilai yang dijangkakan
@RequestMapping("/user") public class PersonController { @Autowired private Person person; @GetMapping public Person getPerson() { return person; } }
{"name":"ZhangSan","age":18}
Tukar nilai spring.profiles.active dalam aplikasi .properties untuk prod dan meminta akses kepada http: //localhost:8080/user, kembalikan hasil:{"name":"LiSi","age":19}Selain itu, jika kami telah memasang projek Dibungkus ke dalam balang, anda boleh menentukan nilai spring.profiles.active dengan memberikan nilai kepada parameter melalui baris arahan apabila memulakan projek SpringBoot
java -jar .\web-02-0.0.1-SNAPSHOT.jar --spring.profiles.active=devSatu lagi yang lebih praktikal ialah SpringBoot memuatkan application.properties dan Laluan dan keutamaan application.yaml (dilihat daripada dokumentasi SpringBoot rasmi: https://docs.spring.io/spring-boot/docs/current/reference /html/features.html#features.external-config. application-json), keutamaan memuatkan:
application.properties dan application.yaml
di bawah /config/{first- subdirektori level} di bawah direktori di mana pakej jar terletak
application.properties dan application.yaml di bawah /config dalam direktori di mana pakej jar terletakAtas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah kegagalan untuk memulakan springboot ditentukan profil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!