Maison >Java >javaDidacticiel >Comment puis-je injecter des valeurs de propriété dans des beans configurés avec des 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.
Considérez une classe Java annotée comme un bean Spring :
@Repository("personDao") public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { // Implementation omitted }
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
Spring fournit un support EL (Expression Language) qui permet l'injection de propriétés directement dans les beans annotés. Pour ce faire :
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.23</version> </dependency>
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { @Value("${results.max}") private int maxResults; // Implementation omitted }
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;
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!