Como ler os dados do ficheiro de propriedades java usando o arranque da mola
Tenho uma aplicação de arranque de primavera e quero ler alguma variável da minha aplicação.ficheiro de propriedades. Na verdade, abaixo códigos fazem isso. Mas penso que há um bom método para esta alternativa.
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream("config.properties");
prop.load(input);
gMapReportUrl = prop.getProperty("gMapReportUrl");
} catch (IOException ex) {
ex.printStackTrace();
} finally {
...
}
2 answers
Pode usar @PropertySource
para externalizar a sua configuração num ficheiro de propriedades. Existem várias formas de obter propriedades:
1.
Atribuir os valores da propriedade aos campos usando @Value
com PropertySourcesPlaceholderConfigurer
para resolver ${}
em @Value
:
@Configuration
@PropertySource("file:config.properties")
public class ApplicationConfiguration {
@Value("${gMapReportUrl}")
private String gMapReportUrl;
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}
2.
Obter os valores da propriedade usando Environment
:
@Configuration
@PropertySource("file:config.properties")
public class ApplicationConfiguration {
@Autowired
private Environment env;
public void foo() {
env.getProperty("gMapReportUrl");
}
}
Espero que isto possa ajudar.
Eu sugeriria o seguinte modo:
@PropertySource(ignoreResourceNotFound = true, value = "classpath:otherprops.properties")
@Controller
public class ClassA {
@Value("${myName}")
String name;
@RequestMapping(value = "/xyz")
@ResponseBody
public void getName(){
System.out.println(name);
}
}
Aqui o seu novo ficheiro propriedades é " otherprops.propriedades "e o nome da propriedade é "myName". Esta é a implementação mais simples para acessar o arquivo de propriedades na versão 1.5.8 do spring boot.