1. Cipta fail .properties baharu dalam sumber
Buat folder konfigurasi baharu dalam direktori sumber, kemudian buat fail .properties baharu dan letakkannya dalam folder. Seperti yang ditunjukkan dalam rajah jauh.properties
2. Tulis fail konfigurasi
remote.uploadFilesUrl=/resource/files/ remote.uploadPicUrl=/resource/pic/
3. Buat kelas Konfigurasi baru RemoteProperties.java
@Configuration @ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false) @PropertySource("classpath:config/remote.properties") @Data @Component public class RemoteProperties { private String uploadFilesUrl; private String uploadPicUrl; }
di mana
@Configuration menunjukkan bahawa ini ialah kelas konfigurasi
@ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false ) Anotasi ini digunakan Sifat mengikat. awalan digunakan untuk memilih awalan atribut, iaitu "jauh" dalam fail remote.properties ignoreUnknownFields digunakan untuk memberitahu SpringBoot untuk membuang pengecualian apabila terdapat atribut yang tidak sepadan dengan medan yang diisytiharkan.
@PropertySource("classpath:config/remote.properties") Laluan fail konfigurasi
@Data Ini ialah anotasi lombok, digunakan untuk menjana kaedah getter&setter
@Component dikenal pasti sebagai Bean
4.
Annotate EnableConfigurationProperties(RemoteProperties.class)
pada jadual kelas di mana anda ingin menggunakan kaedah fail konfigurasi dan secara automatik menyuntik
@Autowired RemoteProperties remoteProperties;
Gunakan remoteProperties.getUploadFilesUrl( dalam kaedah ) untuk mendapatkan kandungan konfigurasi.
@EnableConfigurationProperties(RemoteProperties.class) @RestController public class TestService{ @Autowired RemoteProperties remoteProperties; public void test(){ String str = remoteProperties.getUploadFilesUrl(); System.out.println(str); } }
Str di sini ialah "/resource/files/" dalam fail konfigurasi.
PS: Mari kita lihat dua cara untuk membaca fail konfigurasi konfigurasi dalam Spring-boot
Mereka yang telah belajar tentang teknologi spring-Boot harus tahu Spring -Boot Aplikasi fail konfigurasi teras.properties, sudah tentu, anda juga boleh menyesuaikan maklumat fail konfigurasi melalui anotasi.
Cara Spring-Boot membaca fail konfigurasi:
1 Baca kandungan aplikasi maklumat fail konfigurasi teras.properties
Fail konfigurasi teras Ia merujuk. ke fail konfigurasi application.properties atau application.yml dalam direktori akar sumber Terdapat dua cara untuk membaca kedua-dua fail konfigurasi ini, kedua-duanya agak mudah.
Kandungan aplikasi fail konfigurasi teras.properties adalah seperti berikut:
test.msg=Hello World SpringBoot
Kaedah 1: Gunakan kaedah @Value (biasa digunakan)
package Solin.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class WebController { @Value("${test.msg}") private String msg; @RequestMapping("/index1") public String index1(){ return "方式一:"+msg; } }
Nota: dalam @Value ${} mengandungi nama kunci dalam fail konfigurasi teras. Menambah @RestController pada kelas Pengawal bermakna semua paparan dalam kelas ini akan dipaparkan dalam JSON, sama seperti menambahkan @ResponseBody pada kaedah paparan.
Apabila mengakses: http://localhost:8088/index1, anda mendapat: "Kaedah 1: Hello World SpringBoot"
Kaedah 2: Gunakan kaedah Persekitaran
package Solin.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class WebController { @Autowired private Environment env; @RequestMapping("/index2") public String index2(){ return "方式二:"+env.getProperty("test.msg"); } }
Nota: Kaedah ini dilengkapkan dengan suntikan kebergantungan Evnironment Tambahkan anotasi @Autowired pada env persendirian pembolehubah ahli yang dicipta untuk melengkapkan suntikan kebergantungan, dan kemudian gunakan env.getProperty("nama kunci") untuk membaca nilai yang sepadan.
Apabila mengakses: http://localhost:8088/index2, anda mendapat: "Kaedah 2: Hello World SpringBoot"
2. Baca maklumat fail konfigurasi tersuai, contohnya: pengarang. properties
Untuk tidak memusnahkan ekologi asal fail teras, tetapi juga perlu mempunyai maklumat konfigurasi tersuai, biasanya fail konfigurasi tersuai akan dipilih untuk meletakkan maklumat tersuai ini, yang dibuat di sini dalam direktori sumber. Kandungan fail konfigurasi author.properties
resources/author.properties adalah seperti berikut:
author.name=Solin author.age=22
Cipta kelas entiti untuk mengurus konfigurasi:
package Solin.controller; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; //加上注释@Component,可以直接在其他地方使用@Autowired来创建其实例对象 @Component @ConfigurationProperties(prefix = "author",locations = "classpath:author.properties") public class MyWebConfig{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
Nota:
Terdapat dua sifat dalam anotasi @ConfigurationProperties:
lokasi: Tentukan lokasi fail konfigurasi
awalan: Tentukan awalan nama kunci dalam fail konfigurasi (dalam fail konfigurasi saya di sini Semua nama kunci bermula dengan pengarang.)
Menggunakan @Component membolehkan kelas digunakan sebagai kebergantungan di tempat lain, iaitu menggunakan anotasi @Autowired untuk membuat kejadian.
Buat Pengawal ujian
package Solin.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class ConfigController { @Autowired private MyWebConfig conf; @RequestMapping("/test") public @ResponseBody String test() { return "Name:"+conf.getName()+"---"+"Age:"+conf.getAge(); } }
Nota: Memandangkan anotasi @Component ditambahkan pada kelas Conf, anda boleh menggunakan @Autowired terus di sini untuk mencipta objek contohnya.
Apabila mengakses: http://localhost:8088/test, saya mendapat: "Nama:Solin---Umur:22"
Atas ialah kandungan terperinci Cara membaca fail konfigurasi sifat tersuai di bawah SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!