Rumah > Java > javaTutorial > Bagaimana untuk menyelesaikan masalah menggunakan @Value dalam springBoot

Bagaimana untuk menyelesaikan masalah menggunakan @Value dalam springBoot

王林
Lepaskan: 2023-05-14 18:55:06
ke hadapan
1490 orang telah melayarinya

Masalah yang timbul daripada menggunakan @Value untuk mendapatkan nilai

Dalam projek springBoot, kami biasanya menulis beberapa laluan atau sumber dalam fail konfigurasi untuk memudahkan pengurusan.

Tetapi mungkin terdapat beberapa masalah semasa mendapatkannya.

file.uploadFolder=E://upload/

1 Secara umumnya tentukan medan

dan gunakan @Value("$ {Name} ") boleh mendapatkan nilai

@Value("${file.uploadFolder}")
    private String uploadFolder;
Salin selepas log masuk

2. Tetapi biasanya kita akan menggunakannya dalam kelas alat

tetapi medan diubah suai secara statik untuk menjadi pembolehubah statik. Menggunakan kaedah ini Jika nilai tidak dapat diperoleh, apa yang kita dapat adalah batal.

Jadi kita perlu menukar cara untuk mendapatkan nilai, seperti yang ditunjukkan di bawah. Ingat untuk tidak menggunakan statik dalam kaedah yang ditetapkan! ! !

private static String uploadFolder;
public static String getUploadFolder() {
        return uploadFolder;
    }
    @Value("${file.uploadFolder}")
    public  void setUploadFolder(String uploadFolder) {
        Base64Utils.uploadFolder = uploadFolder;
    }
Salin selepas log masuk

3 Sebaiknya tambahkan @Komponen atau anotasi lain

pada kelas alat untuk membiarkannya diuruskan oleh musim bunga.

Ingat oolong yang berlaku apabila springBoot menggunakan @Value

Lihat kod dahulu

server.port=8007
#mysql配置
url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
Salin selepas log masuk

Ini ialah maklumat konfigurasi berkaitan yang diisi dalam application.properties, di mana mysql konfigurasi digunakan sebagai maklumat konfigurasi luaran digunakan.

Kemudian gunakannya di mana perlu seperti berikut

@Configuration
public class JfinalDb
{
    @Value("${url}")
    private String dbUrl;
    @Value("${username}")
    private String dbUName;
    @Value("${password}")
    private String dbPwd;
...
}
Salin selepas log masuk

Masalah yang sangat pelik berlaku apabila menggunakannya, iaitu nama pengguna dan kata laluan tetapan penamaan adalah betul, dan sambungan setempat juga betul , tetapi selalu Ia adalah ralat bahawa pengesahan sambungan gagal, dan nama pengguna bukan akar.

Akhirnya saya mencetak dbUName dan mendapati bahawa bukan root sama sekali, tetapi nama hos saya!

Jadi di sini, ingatlah untuk tidak menyesuaikan nama pengguna nama dalam fail application.properties, kerana anda tidak akan mendapat hasil yang anda inginkan.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah menggunakan @Value dalam 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