spring中获取绝对路径的几种方法

spring中获取绝对路径的几种方法

1、在普通类中,想要获取绝对路径,可以通过获取ServletContext的方式。
WebApplicationContext webApplicationContext = ContextLoader
                .getCurrentWebApplicationContext();
ServletContext servletContext = webApplicationContext.getServletContext();
// 得到文件绝对路径
String realPath = servletContext.getRealPath("/resource");
System.out.println("realPath:"+realPath);
2、在普通类中,想要获取绝对路径,可以通过获取ServletContext的方式。
@RequestMapping("test")
public String test(HttpServletRequest request) {
    String path = request.getServletContext().getContextPath();
    System.out.println(path);
    String realPath = req.getServletContext().getRealPath("/uploadFile");
    System.out.println(realPath);
    return realPath;
}
3、还有一种方法是在web.xml配置。
<!-- 配置webAppRootKey -->
<context-param>  
  <param-name>webAppRootKey</param-name>  
  <param-value>project.root</param-value>  
</context-param>

<listener>  
    <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>  
</listener>

如果没有配置webAppRootKey,可以用System.getProperty("webapp.root")

如果配置了webAppRootKey,可以用System.getProperty("project.root"),project.root 这个值可以自定义

注:比如在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容