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.
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.
resource.test.imageServer=http://image.everest.com
@Configuration public class EverestConfig { @Value("${resource.test.imageServer}") private String imageServer; public String getImageServer() { return imageServer; } }
2 menyuntiknya di mana diperlukan.
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 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!@Component
@ConfigurationProperties(prefix = "resource.test")
public class TestUtil {
public String imageServer;
public String getImageServer() {
return imageServer;
}
public void setImageServer(String imageServer) {
this.imageServer = imageServer;
}
}