


Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?
application.yml mentakrifkan koleksi senarai
Cara pertama ialah menggunakan @ConfigurationProperties
anotasi untuk mendapatkan semua nilai koleksi senarai
type: code: status: - 200 - 300 - 400 - 500
Tulis kelas entiti yang sepadan ke fail konfigurasi. Apa yang perlu diperhatikan di sini ialah , untuk mentakrifkan koleksi senarai, mula-mula tentukan kelas konfigurasi Bean
, dan kemudian gunakan anotasi @ConfigurationProperties
untuk mendapatkan nilai koleksi senarai Di sini saya akan menerangkan peranannya daripada anotasi yang berkaitan
@Component Serahkan kelas entiti kepada pengurusan Spring
@ConfigurationProperties(prefix = “type.code”) Baca senarai dalam fail yml
@ Data menjana kaedah getter dan setter secara automatik
seperti yang ditunjukkan dalam rajah di bawah
package com.o2o.data; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import java.util.List; @Component @ConfigurationProperties(prefix = "type.code") // 配置文件的前缀 @Data public class TypeCodeConfig { private List<String> status; public void setStatus(List<String> status){ this.status = status; } public List<String> getStatus(){ return status; } }
dan kemudian secara automatik menyuntik mereka di mana ia akan digunakan Saya membaca senarai ini secara langsung dalam kelas permulaan , perlu diperhatikan bahawa apabila menggunakan senarai yang dikonfigurasikan dalam yml, anda perlu menyuntik objek terlebih dahulu, dan kemudian membaca nilai dalam. fail konfigurasi melalui kaedah get.
@Autowired private TypeCodeConfig typeCodeConfig; Kaedah untuk membaca nilai
package com.o2o; import com.o2o.data.TypeCodeConfig; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.o2o.mapper") public class AutoTestApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AutoTestApplication.class, args); } @Autowired private TypeCodeConfig typeCodeConfig; @Override public void run(String... args) throws Exception { System.out.println(typeCodeConfig.getStatus());
Salin selepas log masukMulakan springboot Kami telah berjaya membaca semua nilai koleksi senarai dalam fail yml dari konsol
untuk mendapatkan semua nilai koleksi senarai
student: ids: - 7 - 8 - 9
@value
Kemudian buat kelas entiti @Data public class Student { @Value("${student.ids}") private List<Integer> ids; }
dan cipta pasangan baharu Kelas konfigurasi atribut senarai
@Component @ConfigurationProperties(prefix = "student") @Data public class TypeCodeConfig { private List<Integer> ids; public void setIds(List<Integer> ids) { this.ids = ids; } public List<Integer> getIds(){ return ids; }
menyuntik
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) @MapperScan("com.o2o.mapper") public class AutoTestApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AutoTestApplication.class, args); } @Autowired private TypeCodeConfig typeCodeConfig; @Override public void run(String... args) throws Exception { System.out.println(typeCodeConfig.getIds()); }
ke dalam kelas permulaan untuk memulakan springboot Kami telah berjaya membaca semua nilai koleksi senarai dalam fail yml daripada konsol
application.yml mentakrifkan jenis tatasusunan
fail konfigurasi yml seperti yang ditunjukkan di bawah
dataSync: enable: true type: - "1" - "2" - "3"
Dapatkan nilai tatasusunan melalui anotasi @value
@Value("${dataSync.enable.type}") private String[] type;
Juga Ia boleh diperolehi dengan mencipta kacang kelas konfigurasi dan menggunakan
, seperti yang ditunjukkan dalam rajah di bawah:@Data @Component @ConfigurationProperties(prefix = "dataSync.enable") // 配置 文件的前缀 public class InterceptorPathBean { private String[] type; }
Contoh mudah: @ConfigurationProperties注解
interceptorconfig: path: maps: name: 小明 age: 24
Buat kacang kelas konfigurasi dan gunakan anotasi @ConfigurationProperties untuk mendapatkan nilai peta, seperti yang ditunjukkan dalam rajah di bawah
@Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置 文件的前缀 public class InterceptorPathBean { private Map<String , String> maps; }
Gunakan Konfigurasi objek
student: id: 1 name: Bruce gender: male
Gunakan konfigurasi koleksi objek
students: - id: 1 name: Bruce gender: male - id: 2 name: ... ...
Di sini saya akan meringkaskan beberapa perkara penting untuk anda:
1 Dalam senarai jenis fail konfigurasi yml, anda perlu menggunakan "- " untuk membentuk koleksi senarai.
2. Tiada had tahap untuk awalan dalam yml Jika ia berbilang peringkat, seperti demo/kod di sini, awalan untuk mengkonfigurasi anotasi ConfigurationProperties dalam kelas java ditulis sebagai "demo. kod"
3. Nama atribut menyokong tanda sempang "-" dalam fail yml, seperti empat-span. Apabila mengkonfigurasi atribut dalam kelas java, ia perlu ditukar kepada huruf besar unta, fourSpan.
4. Atribut kelas Java perlu dikonfigurasikan dengan kaedah set dan dapatkan.
Atas ialah kandungan terperinci Bagaimanakah springboot membaca senarai, tatasusunan, koleksi peta dan objek dalam fail yml?. 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

AI Hentai Generator
Menjana ai hentai secara percuma.

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)

Topik panas



1. Redis melaksanakan prinsip kunci teragih dan mengapa kunci teragih diperlukan Sebelum bercakap tentang kunci teragih, adalah perlu untuk menjelaskan mengapa kunci teragih diperlukan. Lawan daripada kunci yang diedarkan ialah kunci yang berdiri sendiri Apabila kami menulis program berbilang benang, kami mengelakkan masalah data yang disebabkan oleh mengendalikan pembolehubah yang dikongsi pada masa yang sama Kami biasanya menggunakan kunci untuk mengecualikan pembolehubah yang dikongsi bersama untuk memastikan ketepatannya pembolehubah yang dikongsi skop penggunaannya adalah dalam proses yang sama. Jika terdapat berbilang proses yang perlu mengendalikan sumber yang dikongsi pada masa yang sama, bagaimanakah ia boleh saling eksklusif? Aplikasi perniagaan hari ini biasanya merupakan seni bina perkhidmatan mikro, yang juga bermakna bahawa satu aplikasi akan menggunakan berbilang proses Jika berbilang proses perlu mengubah suai baris rekod yang sama dalam MySQL, untuk mengelakkan data kotor yang disebabkan oleh operasi yang tidak teratur, keperluan pengedaran. untuk diperkenalkan pada masa ini. Gaya dikunci. Ingin mencapai mata

Springboot membaca fail, tetapi tidak boleh mengakses perkembangan terkini selepas membungkusnya ke dalam pakej balang Terdapat situasi di mana springboot tidak boleh membaca fail selepas membungkusnya ke dalam pakej balang adalah tidak sah dan hanya boleh diakses melalui strim. Fail berada di bawah resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Apabila Springboot+Mybatis-plus tidak menggunakan pernyataan SQL untuk melaksanakan operasi penambahan berbilang jadual, masalah yang saya hadapi akan terurai dengan mensimulasikan pemikiran dalam persekitaran ujian: Cipta objek BrandDTO dengan parameter untuk mensimulasikan parameter yang dihantar ke latar belakang bahawa adalah amat sukar untuk melaksanakan operasi berbilang jadual dalam Mybatis-plus Jika anda tidak menggunakan alatan seperti Mybatis-plus-join, anda hanya boleh mengkonfigurasi fail Mapper.xml yang sepadan dan mengkonfigurasi ResultMap yang berbau dan kemudian. tulis pernyataan sql yang sepadan Walaupun kaedah ini kelihatan menyusahkan, ia sangat fleksibel dan membolehkan kita

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

1. Sesuaikan RedisTemplate1.1, mekanisme siri lalai RedisAPI Pelaksanaan cache Redis berasaskan API menggunakan templat RedisTemplate untuk operasi cache data Di sini, buka kelas RedisTemplate dan lihat maklumat kod sumber kelas tersebut. Isytihar kunci, Pelbagai kaedah pesirilan nilai, nilai awal kosong @NullableprivateRedisSe

Dalam projek, beberapa maklumat konfigurasi sering diperlukan Maklumat ini mungkin mempunyai konfigurasi yang berbeza dalam persekitaran ujian dan persekitaran pengeluaran, dan mungkin perlu diubah suai kemudian berdasarkan keadaan perniagaan sebenar. Kami tidak boleh mengekodkan konfigurasi ini dalam kod. Adalah lebih baik untuk menulisnya dalam fail konfigurasi Sebagai contoh, anda boleh menulis maklumat ini dalam fail application.yml. Jadi, bagaimana untuk mendapatkan atau menggunakan alamat ini dalam kod? Terdapat 2 kaedah. Kaedah 1: Kita boleh mendapatkan nilai yang sepadan dengan kunci dalam fail konfigurasi (application.yml) melalui ${key} beranotasi dengan @Value Kaedah ini sesuai untuk situasi di mana terdapat sedikit perkhidmatan mikro projek, Apabila perniagaan adalah rumit, logik

Artikel ini akan menulis contoh terperinci untuk bercakap tentang perkembangan sebenar dubbo+nacos+Spring Boot. Artikel ini tidak akan merangkumi terlalu banyak pengetahuan teori, tetapi akan menulis contoh paling mudah untuk menggambarkan bagaimana dubbo boleh disepadukan dengan nacos untuk membina persekitaran pembangunan dengan cepat.

Cara utama SpringBoot membaca fail yml adalah seperti berikut: 1. @Value anotasi Kita boleh menggunakan @Value anotasi pada sifat kacang untuk membaca terus nilai dalam yml, seperti: application.yml:name:ZhangsanBean:publicclassMyBean{ @Value("${name}")privateStringname;}2.Environment object Kita boleh membaca nilai yml dengan menyuntik objek Environment, seperti: @AutowiredprivateEnvironmentenv
