Rumah > Java > javaTutorial > teks badan

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

WBOY
Lepaskan: 2023-05-16 11:52:05
ke hadapan
1511 orang telah melayarinya

@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
    Salin selepas log masuk
  • 1 yang pertama
  • @Configuration
    public class EverestConfig {
     
        @Value("${resource.test.imageServer}")
        private String imageServer;
     
        public String getImageServer() {
            return imageServer;
        }
     
    }
    Salin selepas log masuk

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

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!

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