Maison > Java > javaDidacticiel > Comment puis-je injecter des valeurs de propriété dans des beans configurés avec des annotations au printemps ?

Comment puis-je injecter des valeurs de propriété dans des beans configurés avec des annotations au printemps ?

Mary-Kate Olsen
Libérer: 2024-11-09 05:06:02
original
604 Les gens l'ont consulté

How Can I Inject Property Values into Beans Configured with Annotations in Spring?

Injection de propriétés dans des beans configurés à l'aide d'annotations au printemps

Au printemps, les beans sont souvent configurés à l'aide d'annotations pour simplifier l'injection de dépendances et l'analyse du chemin de classe. Cependant, si vous devez injecter des valeurs de propriété à partir d'une source externe comme un fichier de propriétés, vous pouvez rencontrer des défis.

Énoncé du problème

Considérez une classe Java annotée comme un bean Spring :

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    // Implementation omitted
}
Copier après la connexion

Ce bean est configuré via des annotations et vous souhaitez y injecter une valeur de propriété à partir d'un fichier app.properties. Cependant, comme le bean n'est pas déclaré dans le fichier Spring XML, la fonction L'approche élément ne peut pas être utilisée.

Injection de propriétés à l'aide du support EL

Spring fournit un support EL (Expression Language) qui permet l'injection de propriétés directement dans les beans annotés. Pour ce faire :

  1. Ajoutez la dépendance suivante au pom.xml de votre projet :
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.23</version>
</dependency>
Copier après la connexion
  1. Utilisez l'annotation @Value pour injecter la valeur de la propriété :
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    @Value("${results.max}")
    private int maxResults;
    // Implementation omitted
}
Copier après la connexion

Exemple d'injection de propriétés à partir d'un objet Propriétés

Vous pouvez également utiliser @Value pour injecter des propriétés à partir d'un objet Propriétés :

@Autowired
private Properties myProperties;
@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
Copier après la connexion

Informations supplémentaires

  • L'objet systemProperties permet d'accéder aux propriétés du système.
  • @Value peut également être appliqué aux champs pour injection directe.
  • Pour plus de détails, reportez-vous à ce blog post : [Injection de propriété au printemps à l'aide de @Value et du support EL](https://www.baeldung.com/spring-property-injection-value).

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal