Rumah > Java > javaTutorial > Cara membaca fail konfigurasi sifat tersuai di bawah SpringBoot

Cara membaca fail konfigurasi sifat tersuai di bawah SpringBoot

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-05-13 22:43:11
ke hadapan
2433 orang telah melayarinya

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

Cara membaca fail konfigurasi sifat tersuai di bawah SpringBoot

2. Tulis fail konfigurasi

remote.uploadFilesUrl=/resource/files/
remote.uploadPicUrl=/resource/pic/
Salin selepas log masuk

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;
}
Salin selepas log masuk

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;
Salin selepas log masuk

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);
  }
}
Salin selepas log masuk

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
Salin selepas log masuk

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; 
  } 
}
Salin selepas log masuk

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"); 
  } 
}
Salin selepas log masuk

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
Salin selepas log masuk

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; 
  } 
}
Salin selepas log masuk

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();  
  } 
}
Salin selepas log masuk

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!

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