Maison > Java > javaDidacticiel > Comment résoudre le problème de l'utilisation de @Value dans springBoot

Comment résoudre le problème de l'utilisation de @Value dans springBoot

王林
Libérer: 2023-05-14 18:55:06
avant
1459 Les gens l'ont consulté

Problèmes liés à l'utilisation de @Value

Dans le projet springBoot, nous écrivons généralement certains chemins ou ressources dans le fichier de configuration pour faciliter la gestion.

Mais il peut y avoir quelques problèmes lors de son obtention.

file.uploadFolder=E://upload/

1 Définissez généralement un champ

Utilisez @. Value("${name}") ci-dessus pour obtenir la valeur

@Value("${file.uploadFolder}")
    private String uploadFolder;
Copier après la connexion

2 Mais généralement nous l'utiliserons dans les classes d'outils

Mais les champs sont Il est modifié par. static pour devenir une variable statique. En utilisant cette méthode, la valeur ne peut pas être obtenue et ce que nous obtenons est nul.

Nous devons donc changer la façon d'obtenir la valeur, comme indiqué ci-dessous. N'oubliez pas de ne pas utiliser static dans la méthode set ! ! !

private static String uploadFolder;
public static String getUploadFolder() {
        return uploadFolder;
    }
    @Value("${file.uploadFolder}")
    public  void setUploadFolder(String uploadFolder) {
        Base64Utils.uploadFolder = uploadFolder;
    }
Copier après la connexion

3. Il est préférable d'ajouter @Component ou d'autres annotations à la classe d'outils

pour qu'elle soit gérée d'ici le printemps.

Rappelez-vous le oolong qui s'est produit lorsque SpringBoot a utilisé @Value

Jetons d'abord un coup d'œil au code

server.port=8007
#mysql配置
url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8
username=root
password=root
Copier après la connexion

Ceci sont les informations de configuration pertinentes remplies dans application.properties La configuration mysql est utilisée comme informations de configuration externe.

Ensuite, utilisez-le si nécessaire comme suit

@Configuration
public class JfinalDb
{
    @Value("${url}")
    private String dbUrl;
    @Value("${username}")
    private String dbUName;
    @Value("${password}")
    private String dbPwd;
...
}
Copier après la connexion

Il y a un problème très étrange lors de son utilisation, c'est-à-dire que le nom d'utilisateur et le mot de passe des paramètres de dénomination sont corrects, et le la connexion locale est également correcte Oui, mais l'erreur d'échec d'authentification de connexion est toujours signalée et le nom d'utilisateur n'est pas root.

Finalement, j'ai imprimé le dbUName et j'ai découvert que n'était pas du tout root, mais mon nom d'hôte !

Alors ici, pensez à ne pas personnaliser le nom username dans le fichier application.properties, car vous n'obtiendrez pas les résultats souhaités.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal