Вы можете загрузить весь файл porperties как Map, определив его как PropertiesFactoryBean, а затем используя его с аннотацией @Resource.
@Configuration
@PropertySource(value = "file:src/main/resources/test.properties", encoding = "utf8")
public class AppConfig {
@Value("${propertyname}")
String prop;
@Resource(name = "propertyBean")
private Map<String, String> propMap;
@Bean(name = "propertyBean")
public static PropertiesFactoryBean mapper() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new FileSystemResource("src/main/resources/test.properties"));
return bean;
}
public Map<String, String> getPropMap() {
return propMap;
}
}
И получить доступ к любому ключу, присутствующему в файле свойств, используя ключ, как показано ниже: -
@RestController
public class Test {
@Autowired
private AppConfig appConfig;
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String login(HttpServletRequest request){
return appConfig.getPropMap().get("application.name");
}
}
test.propeties:-
server.port1=8099
application.name=edge-service
propertyname=dddd
Здесь вам не нужно каждый раз писать аннотацию @Value, вы можете получить доступ к значениям с помощью propMap. Если вы хотите прочитать один ключ, используйте
@Value("${propertyname}")
String prop;
Даже вы можете определить данные карты в файле свойств
propertyname={key1:'value1',key2:'value2'}
Может быть много реализаций для достижения этого в зависимости от требований.