Rumah  >  Artikel  >  Java  >  Bagaimana untuk menyelesaikan masalah bahawa @Value SpringBoot mendapat konfigurasi application.properties tidak sah

Bagaimana untuk menyelesaikan masalah bahawa @Value SpringBoot mendapat konfigurasi application.properties tidak sah

WBOY
WBOYke hadapan
2023-05-16 11:52:051427semak imbas

@Value mendapat masalah tidak sah konfigurasi application.properties

Punca ketidaksahihan adalah terutamanya untuk memberi perhatian kepada langkah berjaga-jaga semasa menggunakan @Value:

  • 1. Tidak boleh bertindak pada pembolehubah statik (statik); 3. Tidak boleh bertindak pada bukan Digunakan dalam kelas berdaftar (perlu menggunakan @Componet, @Configuration, dll.); gunakan @Autowired atau baharu. Konfigurasi ini tidak akan disuntik secara automatik.

  • Langkah berjaga-jaga ini juga ditentukan oleh prinsipnya:
  • Semasa proses permulaan springboot, terdapat dua proses penting, seperti berikut:

  • 1. Imbas dan kupas kacang dalam bekas dan daftarkannya di BeanFactory, sama seperti pendaftaran maklumat.

2.

Penghuraian @Value berada di peringkat kedua. BeanPostProcessor mentakrifkan kaedah antara muka yang boleh dikendalikan oleh pengguna pada kacang sebelum dan selepas pemulaan kacang Salah satu kelas pelaksanaannya yang penting, AutowiredAnnotationBeanPostProcessor, seperti yang dikatakan javadoc, menyediakan sokongan untuk fungsi suntikan @Autowired dan @Value anotasi dalam kacang.

  • Berikut ialah dua cara:

    resource.test.imageServer=http://image.everest.com
  • 1 yang pertama
  • @Configuration
    public class EverestConfig {
     
        @Value("${resource.test.imageServer}")
        private String imageServer;
     
        public String getImageServer() {
            return imageServer;
        }
     
    }

    2 menyuntiknya di mana diperlukan.

  • Penyelesaian

Jangan gunakan kaedah baharu untuk mencipta objek kelas alat (DBUtils), tetapi gunakan @Autowired untuk membenarkan springboot mengurusnya dan tambahkan @Component pada kelas alat Jangan tambah statik pada pembolehubah atribut yang ditentukan.

Pendekatan yang betul

@Component
@ConfigurationProperties(prefix = "resource.test")
public class TestUtil {
 
    public String imageServer;
 
    public String getImageServer() {
        return imageServer;
    }
 
    public void setImageServer(String imageServer) {
        this.imageServer = imageServer;
    }
}

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa @Value SpringBoot mendapat konfigurasi application.properties tidak sah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam