recherche
MaisonJavajavaDidacticielComment résoudre le problème selon lequel @Value de SpringBoot obtient une configuration application.properties non valide

@Value obtient le problème de configuration application.properties invalide

La raison de l'invalidité est principalement de faire attention aux précautions d'utilisation de @Value :

  • 1 Il ne peut pas être utilisé sur des variables statiques (statiques) ;

  • 2. Il ne peut pas agir sur des constantes (finales) ;

  • 3. Ne peut pas être utilisé dans des classes non enregistrées (besoin d'utiliser @Component, @Configuration, etc.) ; en utilisant une classe avec cet attribut, vous ne pouvez utiliser que @ La méthode Autowired et la nouvelle méthode n'injectera pas automatiquement ces configurations.

  • Ces précautions sont également déterminées par son principe :

Il y a deux processus importants pendant le processus de démarrage de Springboot, comme suit :

1. Scannez et analysez les beans dans le conteneur et enregistrez-les dans le beanFactory Monter, c'est comme enregistrer des informations.

  • 2. Instanciez et initialisez ces beans numérisés.

  • @Value est analysée dans la deuxième étape. BeanPostProcessor définit la méthode d'interface que les utilisateurs peuvent utiliser sur le bean avant et après l'initialisation du bean. L'une de ses classes d'implémentation importantes, AutowiredAnnotationBeanPostProcessor, comme le dit le javadoc, prend en charge la fonction d'injection des annotations @Autowired et @Value dans le bean.

Il existe deux manières suivantes :

resource.test.imageServer=http://image.everest.com

1. Le premier

@Configuration
public class EverestConfig {
 
    @Value("${resource.test.imageServer}")
    private String imageServer;
 
    public String getImageServer() {
        return imageServer;
    }
 
}
2. Le second

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

Puis injectez-le là où c'est nécessaire

    @Autowired
    private TestUtil testUtil;
 
    @Autowired
    private EverestConfig everestConfig;
 
 
    @GetMapping("getImageServer")
    public String getImageServer() {
        return testUtil.getImageServer();
//        return everestConfig.getImageServer();
    }

@Value pour obtenir la configuration dans application.properties La valeur est Null

@Value("${spring.datasource.url}")

private String url;

La valeur est NULL.

Solution

N'utilisez pas la nouvelle méthode pour créer des objets de classe d'outils (DBUtils), mais utilisez la méthode @Autowired à gérer par springboot. Ajoutez @Component à la classe d'outils et n'ajoutez pas de statique à l'attribut défini. variables.

Voie correcte

@Autowired
private DBUtils jdbc;
  
@Component
public class DBUtils{
    
    @Value("${spring.datasource.url}")
    private String url;
}

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!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Indépendance de la plate-forme Java: qu'est-ce que cela signifie pour les développeurs?Indépendance de la plate-forme Java: qu'est-ce que cela signifie pour les développeurs?May 08, 2025 am 12:27 AM

Java'splatformIndependenceMeansDevellersCanwriteCodeonCeandUniTonanyDevicewithoUtRecompiler.

Comment configurer JVM pour la première utilisation?Comment configurer JVM pour la première utilisation?May 08, 2025 am 12:21 AM

Pour configurer le JVM, vous devez suivre les étapes suivantes: 1) Télécharger et installer le JDK, 2) Définir les variables d'environnement, 3) Vérifiez l'installation, 4) Définissez l'IDE, 5) Testez le programme Runner. La configuration d'un JVM ne consiste pas seulement à le faire fonctionner, cela implique également d'optimiser l'allocation de la mémoire, la collecte des ordures, le réglage des performances et la gestion des erreurs pour assurer un fonctionnement optimal.

Comment puis-je vérifier l'indépendance de la plate-forme Java pour mon produit?Comment puis-je vérifier l'indépendance de la plate-forme Java pour mon produit?May 08, 2025 am 12:12 AM

Toensurejavaplateformindependence, suivant lestiné: 1) compilisendrunyourApplicationonMultipleplatformSusingdifferentosandjvmversions.2) utilizeci / cdpipelines lienjenkinsorgithubactionsforautomatedcross-PlateformSting.3)

Fonctionnalités Java pour le développement moderne: un aperçu pratiqueFonctionnalités Java pour le développement moderne: un aperçu pratiqueMay 08, 2025 am 12:12 AM

JavastandsoutinModerndevelopmentDuetOitsRobustFeaturesLikelambdaExpressions, Streams, andenhancedConcurrencySupport.1) LambdaExpressionsSSSIMPLIFYFUNCEALPRAMIN

Master Java: Comprendre ses caractéristiques et capacités de baseMaster Java: Comprendre ses caractéristiques et capacités de baseMay 07, 2025 pm 06:49 PM

Les principales caractéristiques de Java incluent l'indépendance de la plate-forme, la conception orientée objet et une bibliothèque standard riche. 1) La conception orientée objet rend le code plus flexible et maintenable via des caractéristiques polymorphes. 2) Le mécanisme de collecte des ordures libère le fardeau de gestion de la mémoire des développeurs, mais il doit être optimisé pour éviter les problèmes de performance. 3) La bibliothèque standard fournit des outils puissants des collections aux réseaux, mais les structures de données doivent être sélectionnées avec soin pour garder le code concis.

Java peut-elle être coulée partout?Java peut-elle être coulée partout?May 07, 2025 pm 06:41 PM

Oui, javacanruneverywhereduetoit "writeOnce, runanywhere" philosophy.1) javacodeiscompilentoplatform-indépendybytecode.2) thejavavirtualmachine (jvm) interprètes

Quelle est la différence entre JDK et JVM?Quelle est la différence entre JDK et JVM?May 07, 2025 pm 05:21 PM

JdkinclustoolsfordEvelovegingandComplingjavacode, tandis quejvmrunStheCompileByteCode.1) JdkContainsjre, compilateur et et utilities.2) jvmManagesByteDeExEcutionandSupports "WriteOnce, runanywhere." 3) usejdkformevelopmentandjreforrunningapplications. "3).

Fonctionnalités Java: un guide rapideFonctionnalités Java: un guide rapideMay 07, 2025 pm 05:17 PM

Les principales caractéristiques de Java comprennent: 1) la conception orientée objet, 2) Indépendance de la plate-forme, 3) Mécanisme de collecte des ordures, 4) Bibliothèques et cadres riches, 5) Support de concurrence, 6) Manipulation des exceptions, 7) Évolution continue. Ces fonctionnalités de Java en font un outil puissant pour développer des logiciels efficaces et maintenables.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire