Il existe différentes manières d'atteindre la même chose. Vous trouverez ci-dessous quelques méthodes couramment utilisées au printemps.
Utilisation de PropertyPlaceholderConfigurer
Utilisation de PropertySource
Utilisation de ResourceBundleMessageSource
Utilisation de PropertiesFactoryBean
et beaucoup plus........................
En supposant que ds.type
c'est la clé dans votre fichier de propriété.
En utilisant PropertyPlaceholderConfigurer
Enregistrer PropertyPlaceholderConfigurer
bean-
<context:property-placeholder location="classpath:path/filename.properties"/>
ou
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:path/filename.properties" ></property>
</bean>
ou
@Configuration
public class SampleConfig {
@Bean
public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
//set locations as well.
}
}
Après vous être enregistré PropertySourcesPlaceholderConfigurer
, vous pouvez accéder à la valeur-
@Value("${ds.type}")private String attr;
En utilisant PropertySource
Dans la dernière version de printemps , vous n'avez pas besoin de vous inscrire PropertyPlaceHolderConfigurer
avec @PropertySource
, j'ai trouvé un bon lien pour comprendre la version compatibility-
@PropertySource("classpath:path/filename.properties")
@Component
public class BeanTester {
@Autowired Environment environment;
public void execute() {
String attr = this.environment.getProperty("ds.type");
}
}
En utilisant ResourceBundleMessageSource
Enregistrer Bean-
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:path/filename.properties</value>
</list>
</property>
</bean>
Valeur d'accès-
((ApplicationContext)context).getMessage("ds.type", null, null);
ou
@Component
public class BeanTester {
@Autowired MessageSource messageSource;
public void execute() {
String attr = this.messageSource.getMessage("ds.type", null, null);
}
}
En utilisant PropertiesFactoryBean
Enregistrer Bean-
<bean id="properties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:path/filename.properties</value>
</list>
</property>
</bean>
Wire Properties dans votre classe
@Component
public class BeanTester {
@Autowired Properties properties;
public void execute() {
String attr = properties.getProperty("ds.type");
}
}