Rumah > Java > javaTutorial > teks badan

Cara memuatkan fail konfigurasi luaran selepas projek SpringBoot dijadikan balang

PHPz
Lepaskan: 2023-05-11 23:28:14
ke hadapan
1952 orang telah melayarinya

1. Application.properties luaran

Kebanyakan maklumat konfigurasi dikonfigurasikan dalam application.properties, jadi bolehkah fail ini luaran? Sudah tentu ini mungkin.

Mula-mula tentukan sifat dalam application.preperties:

demo.name = hello.01
Salin selepas log masuk

Gunakannya dalam Pengawal:

@Value("${demo.name}")
private String demoName;
 
@RequestMapping("/test")
public String test(){
    return this.demoName;
}
Salin selepas log masuk

Masukkan projek ke dalam pakej balang dan mulakannya menggunakan java -jar:

java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar

Nilai yang dibaca pada masa ini ialah: hello.01.

Salin application.properties dalam projek dan letakkannya dalam laluan yang sama seperti pakej jar Ubah suai nilai hartanah kepada:

demo.name = hello.02
Salin selepas log masuk

Kemudian gunakan arahan di atas untuk memulakan semula dan melihat kesannya. . Nilainya hello.02 Mengejutkan atau tidak, Spring Boot sangat hebat.

Jika kita mencipta konfigurasi baharu di bawah balang dan meletakkan application.properties di dalamnya, bolehkah ia dikenali menggunakan arahan di atas? Jawapannya ya,

SpringApplication akan memuatkan sifat daripada fail application.properties di lokasi berikut dan menambahkannya ke persekitaran Spring:

  • dalam direktori semasa /config subdirektori

  • direktori akar classpath

  • /direktori konfigurasi dalam classpath

  • Direktori semasa

Jika ia adalah direktori tersuai, seperti conf, ia tidak akan dikenali pada masa ini, tetapi anda boleh menggunakan --spring.config.location untuk menentukan laluan Perintah pelaksanaan adalah sebagai berikut:

java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar--spring.config.location=conf/application.properties

Sudah tentu, anda juga boleh menentukan ia menggunakan laluan mutlak:

java -jar springboot-out-properties-0.0.1-SNAPSHOT.jar--spring.config.location=/Users/linxiangxian/Downloads/conf/application.properties

2. @PropertySource External

Dalam projek, beberapa konfigurasi akan menggunakan fail sifat tersuai, seperti mentakrifkan demo.properties:

demo.nickname = hello.10
demo.weixin = springboot
Salin selepas log masuk

Gunakan @PropertySource untuk menentukan fail konfigurasi:

 /**
 * @PropertySource的例子
 * <p>
 */
@Configuration
@ConfigurationProperties(prefix = "demo")
@PropertySource(value = {"classpath:demo.properties"})
public class DemoProperties {
    private String nickname;
    private String weixin;
 
    public String getNickname() {
        return nickname;
    }
 
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
 
    public String getWeixin() {
        return weixin;
    }
 
    public void setWeixin(String weixin) {
        this.weixin = weixin;
    }
 
    @Override
    public String toString() {
        return "DemoProperties{" +
                "nickname=&#39;" + nickname + &#39;\&#39;&#39; +
                ", weixin=&#39;" + weixin + &#39;\&#39;&#39; +
                &#39;}&#39;;
    }
}
Salin selepas log masuk

Kemudian anda boleh mengakses fail konfigurasi ini pada masa ini, menjadikannya sebagai pakej jar dan laksanakan arahan:

java -jar springboot-out-properties-0.0.1-SNAPSHOT .jar

Pada masa ini Nilai yang dikembalikan ialah: hello.10

Letakkan demo.properties dalam laluan yang sama seperti pakej jar, ubah suai nilai demo.name kepada hello.11, laksanakan arahan di atas, Barbie Q, hasilnya masih hello .10, menunjukkan bahawa Spring Boot tidak dapat mencari fail sifat tersuai dari luar.

Jadi apa yang boleh kita lakukan tentang masalah ini?

Ia sangat mudah @PropertySource menyokong berbilang konfigurasi dan berbilang laluan Anda boleh mengkonfigurasinya seperti ini:

@PropertySource(value = {"classpath:demo.properties","file:./demo.properties"},ignoreResourceNotFound = true)
Salin selepas log masuk

Apabila kami mengkonfigurasi berbilang laluan dan fail konfigurasi dalam berbilang laluan wujud, SpringBoot akan. muatkan kesemuanya dan akan merangkumi kandungan yang sama. Oleh itu, apabila maklumat konfigurasi kami hanya membezakan antara laluan luaran dan dalaman dan kandungannya betul-betul sama, tulis sahaja laluan fail pada penghujungnya. Apabila kita bermula secara setempat, kerana laluan fail tidak wujud, laluan kelas akan dimuatkan; apabila balang bermula, laluan fail akan menimpa kandungan laluan kelas; ia tidak dapat ditemui Ralat akan dilaporkan. Selepas menambahnya, fail konfigurasi yang tidak ditemui akan diabaikan.

Pada ketika ini, letak sahaja fail konfigurasi demo.properties pada tahap yang sama dengan pakej jar.

Atas ialah kandungan terperinci Cara memuatkan fail konfigurasi luaran selepas projek SpringBoot dijadikan balang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!