Если ваш bean-компонент управляется весенним контекстом веб-приложения, вы можете реализовать ServletContextAware
, и Spring добавит ServletContext
в ваш bean-компонент. Затем вы можете запросить ServletContext
реальный путь к файловой системе для данного ресурса, например
String filePathToGraphsDir = servletContext.getRealPath("/graphs");
Если ваш бин находится не в контексте веб-приложения, то он становится довольно уродливым, может что-то вроде:
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
String pathToGraphsDir = requestAttributes.getRequest().getRealPath("/graphs");
Используется устаревший метод ServletRequest.getRealPath
, но он все равно должен работать, хотя RequestContextHolder
работает только в том случае, если выполняется потоком запроса.