je le code suivant dans un échantillon Spring Boot application@Value avec SPEL pas en mesure d'obtenir des valeurs des propriétés
@Configuration
@PropertySource("classpath:second.properties")
public class PropertyConfig {
@Value("#{guru.username}")
String user;
@Value("#{guru.password}")
String password;
@Value("#{guru.url}")
String url;
@Bean
FakeDataSource getFakeDataSource() {
FakeDataSource fk = new FakeDataSource();
fk.setName(user);
fk.setPassword(password);
fk.setUrl(url);
return fk;
}
@Bean
PropertySourcesPlaceholderConfigurer getPropertySourcesPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer placeholderConfigurer= new PropertySourcesPlaceholderConfigurer();
//placeholderConfigurer.setLocation(new ClassPathResource("second.properties"));
return placeholderConfigurer;
}
}
Et FakeDataSource est un simple POJO avec le nom, passowrd, propriétés url.
Ensuite, mon application principale
@SpringBootApplication
public class SpringGuru101DependencyInjectionApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(SpringGuru101DependencyInjectionApplication.class, args);
// Step 2: Make Class
FakeDataSource fakeDataSource = ctx.getBean(FakeDataSource.class);
System.out.println(fakeDataSource.getName());
}
}
mais l'instruction Sout est l'impression null, mon fichier second.properties est présent dans mon répertoire des ressources avec le contenu suivant
guru.username=Saurabh
guru.password=ido
guru.url=http://example.com
essayer '@ImportResource ("classpath: second.properties") ' –
Veuillez essayer de remplacer le signe de tête de puits (#) par le signe dollar ($) pour lire la valeur de votre fichier de configuration. Par exemple: '@Value (" $ {guru.username} ")' – LHCHIN
L'application @ScaryWombat n'a pas pu être compilée si j'utilise @ImportSource (_classpath_) 'org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Ligne 1 dans Le document XML de la ressource de chemin de classe [second.properties] n'est pas valide; l'exception imbriquée est org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Le contenu est interdite dans prolog.' – Saurabh