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 {
    ...
}
Author: Tatkal, 2016-07-09

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.
 27
Author: Wilson, 2016-07-09 13:02:28

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.

 7
Author: SAM, 2017-11-10 07:04:12