Rumah > Java > javaTutorial > Cara anotasi asas SpringBoot2 @ConfigurationProperties mengkonfigurasi pengikatan

Cara anotasi asas SpringBoot2 @ConfigurationProperties mengkonfigurasi pengikatan

WBOY
Lepaskan: 2023-05-12 08:22:05
ke hadapan
999 orang telah melayarinya

Kami biasanya meletakkan beberapa perkara yang kerap berubah ke dalam fail konfigurasi.

Sebagai contoh, nombor port application.properties yang sebelum ini ditulis dalam fail konfigurasi server.port=8080 dan nombor biasa lain termasuk maklumat sambungan pangkalan data, dsb.

Kemudian, maklumat sambungan pangkalan data saya diletakkan dalam fail konfigurasi Jika saya ingin menggunakannya, saya mesti menghuraikan fail konfigurasi dan menggunakan kandungan yang dihuraikan dalam kacang.

Seluruh adegan sebenarnya mengikat semua konfigurasi dalam fail konfigurasi kepada kacang java.

Untuk melengkapkan senario ini, masih agak menyusahkan untuk menulis berdasarkan kod asli java. Biasanya enkapsulasi dibuat, kandungan dalam fail sifat dibaca dan ia dikapsulkan ke dalam JavaBean:

public class getProperties {     public static void main(String[] args) throws FileNotFoundException, IOException {         Properties pps = new Properties();         pps.load(new FileInputStream("a.properties"));         Enumeration enum1 = pps.propertyNames();//得到配置文件的名字         while(enum1.hasMoreElements()) {             String strKey = (String) enum1.nextElement();             String strValue = pps.getProperty(strKey);             System.out.println(strKey + "=" + strValue);             //封装到JavaBean             ... ...         }     }
Salin selepas log masuk

Di sini, kelas Properties digunakan untuk memuatkan fail konfigurasia.properties, dan kemudian melintasi fail konfigurasi Setiap k-v boleh digunakan di tempat yang sepadan selepas diperolehi.

Proses ini dipermudahkan dalam springboot, iaitu pengikatan konfigurasi.

Pengikatan konfigurasi

Lengkapkan pengikatan konfigurasi dengan menggunakan anotasi @ConfigurationProperties Ambil perhatian bahawa ia perlu digunakan bersama dengan @Component.

Buat komponen baharu Car dengan dua atribut: jenama dan harga:

@Componentpublic class Car {    private String brand;    private Integer price;// get set tostring 就不贴了
Salin selepas log masuk

Dalam fail konfigurasi application.properties, tetapkan beberapa nilai atribut, seperti:

mycar.brand=QQmycar.price=9999
Salin selepas log masuk

Gunakan anotasi @ConfigurationProperties dan tambahkannya pada komponen:

@Component@ConfigurationProperties(prefix = "mycar")public class Car {    private String brand;    private Integer price;... ...
Salin selepas log masuk

Awalan yang diluluskan ialah awalan dalam fail konfigurasi, inilah mycar.

Pengesahan

Sekarang mari kita uji sama ada pengikatan itu berjaya. Teruskan menambah kaedah pengawal dalam HelloController sebelumnya:

@RestControllerpublic class HelloController {    @Autowired    Car car;    @RequestMapping("/car")    public Car car() {        return car;    }    @RequestMapping("/hello")    public String Hello() {        return "Hello SpringBoot2 你好";    }}
Salin selepas log masuk

Gunakan aplikasi dan aksesnya melalui pelayarhttp://localhost:8080/car:

Cara anotasi asas SpringBoot2 @ConfigurationProperties mengkonfigurasi pengikatan

Berjaya pengikatan.

Cara lain

Selain kaedah di atas, anda juga boleh menggunakan kaedah @EnableConfigurationProperties + @ConfigurationProperties untuk melengkapkan pengikatan.

Perhatikan bahawa anotasi @EnableConfigurationProperties harus digunakan pada kelas konfigurasi untuk menunjukkan fungsi mendayakan konfigurasi atribut:

//@ConditionalOnBean(name = "pet1")@Import({User.class, DBHelper.class})@Configuration(proxyBeanMethods = true)@ImportResource("classpath:beans.xml")  //配置文件的类路径@EnableConfigurationProperties(Car.class) //开启属性配置的功能public class MyConfig {    @Bean("user1")    public User user01(){        User pingguo = new User("pingguo",20);        pingguo.setPet(tomcatPet());        return pingguo;    }    @Bean("pet22")    public Pet tomcatPet(){        return new Pet("tomcat");    }}
Salin selepas log masuk

@EnableConfigurationProperties(Car.class) Lulus dalam kelas untuk mendayakan konfigurasi, yang boleh secara automatik masukkan Kereta Berdaftar ke dalam bekas, iaitu @Component pada Kereta sebelumnya tidak diperlukan lagi.

//@Component@ConfigurationProperties(prefix = "mycar")public class Car {    private String brand;    private Integer price;
Salin selepas log masuk

Gunakan semula alamat akses dan ia akan tetap berfungsi.

Cara anotasi asas SpringBoot2 @ConfigurationProperties mengkonfigurasi pengikatan

Berkenaan senario penggunaan kedua, sebagai contoh, Kereta di sini ialah kelas dalam pakej pihak ketiga, tetapi kod sumber tidak menambah anotasi @Component. Dalam kes ini, ia boleh Mengikat dengan cara ini.

Akhir sekali, ingat bahawa apabila menggunakan pengikatan konfigurasi @ConfigurationProperties(prefix = "mycar"), ia adalah perhubungan yang mengikat dengan kandungan fail konfigurasi teras springboot application.properties.

Atas ialah kandungan terperinci Cara anotasi asas SpringBoot2 @ConfigurationProperties mengkonfigurasi pengikatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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