在Java中的Web应用程序中获取完全限定的资源名称

时间:2015-02-01 08:08:56

标签: java spring resources properties-file

我想访问我的网络应用程序资源文件夹中的文件(独立于此是被剥离的WAR)。我已经通过Spring使用servletContext来获取getResource和FileSystem上下文。

最后,我选择了Spring ResourceLoader,因为在我的情况下,它似乎是最合适的方法。

我不喜欢使用@PropertySources注释并访问* .properties文件的特定属性。

已更新 我使用Webspehere Liberty Profile部署了我的应用程序。

@Component
public class FileCreator {

    @Autowired
    private ResourceLoader resourceLoader;

    public String getRealPath(String location) {

        String realPath = null;
        try {

            Resource resource = resourceLoader.getResource(location);
            String resourceDesc = resource.getDescription();
            realPath = resource.getURI().getPath();
        } catch (IOException e) {
            LOGGER.error(e.getMessage());
        }

        return realPath;
    }
}

我的Gradle应用程序有常见的maven布局。这意味着myApp.properties文件位于/ WEB-INF / classes文件夹

String scheduledServicesRealPath1 = fileCreator.getRealPath("classpath:myApp.properties");

我想获得此文件的绝对路径,但我只是为空。

是否存在可以独立于应用服务器访问资源的任何方法,在服务器上呈现应用程序的方式(是否已被浏览)以及独立于文件系统?

0 个答案:

没有答案