Muatkan senarai objek daripada aplikasi yml Java Spring Boot
Editor PHP Xigua akan membawa anda menyelidiki isu cara memuatkan senarai objek dalam yml aplikasi dalam Java. Dalam Java Spring Boot, dengan mengkonfigurasi fail yml dengan betul, anda boleh memuatkan senarai objek dan menggunakannya secara fleksibel dalam aplikasi. Seterusnya, marilah kita menguasai teknik ini bersama-sama untuk meningkatkan kepraktisan dan kecekapan dalam pembangunan Spring Boot.
Kandungan soalan
Saya mempunyai kelas konfigurasi ini:
@configuration @configurationproperties(prefix = "house") public class projectconfig{ private list<housetemplate> templates; // getters and setters }
kelas housetemplate:
public class housetemplate{ private string id; private string description; // getters and setters }
Ini adalah ujian permohonan saya.yml
house: templates: - id: "colonial" description: "colonial house template" - id: "cottage" description: "cottage house template" - id: "apartment" description: "apartment house template" examplestring: hello
Dalam kelas ujian saya, saya mempunyai perkara berikut:
@runwith(springrunner.class) @enableconfigurationproperties(value = projectconfig.class) @testpropertysource("classpath:application-test.yml") public class yamlapplicationcontextloadingspec { @value("${examplestring}") string example; @autowired projectconfig projectconfig; @test public void exampleshouldcontainhello(){ assertthat(example).isequaltoignoringcase("hello"); } @test public void appcontextcontainshousetemplates(){ list<housetemplate> housetemplates = projectconfig.gettemplates(); assertthat(housetemplates).isnotnull(); } }
Ujian pertama untuk examplestring lulus, tetapi ujian kedua tidak. Mengapa saya tidak boleh memetakan yml ke dalam senarai templat rumah?
Edit
<artifactId>spring-core</artifactId> <version>4.3.6.RELEASE</version> <artifactId>spring-boot</artifactId> <version>1.5.1.RELEASE</version> <artifactId>junit</artifactId> <version>4.12</version>
Saya tahu mereka benar-benar sudah tua dan saya ingin menaik taraf tetapi saya tidak boleh...ini yang perlu saya hadapi.
Penyelesaian
Gunakan @configurationproperties
从yml中读取后,可以将其注册为bean,然后可以通过applicationcontext
untuk mendapatkannya.
@configuration @configurationproperties(prefix = "house") public class testconfig { private list<housetemplate> templates; @bean public list<housetemplate> templates() { return templates; } // getter and setter } @restcontroller @requestmapping("/api/test") public class testcontroller { @autowired private applicationcontext applicationcontext; @getmapping("get") @suppresswarnings("unchecked") public list<housetemplate> get() { return (list<housetemplate>) applicationcontext.getbean("templates"); } }
Jika anda tidak mahu mendaftar sebagai kacang, anda juga boleh mengisytiharkan pembolehubah sebagai statik.
Berikut adalah contohnya.
@Configuration @ConfigurationProperties(prefix = "House") public class TestConfig { private static List<HouseTemplate> templates; public static List<HouseTemplate> get() { return templates; } public List<HouseTemplate> getTemplates() { return templates; } public void setTemplates(List<HouseTemplate> templates) { TestConfig.templates = templates; } } @RestController @RequestMapping("/api/test") public class TestController { @GetMapping("get") public List<HouseTemplate> get() { return TestConfig.get(); } }
Atas ialah kandungan terperinci Muatkan senarai objek daripada aplikasi yml Java Spring Boot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
