zoukankan      html  css  js  c++  java
  • maven中classpath路径(转)

    前几天看见一个大神总结classpath文章,觉得特别有用。所以,特此转载(http://my.oschina.net/GivingOnenessDestiny/blog/603505)

    各种path获取到的路径的区别

    Main.class.getResource(""); 得到的是当前class所在的路径

    Main.class.getResourceAsStream(""); 是从当前路径查找资源资源

    Main.class.getClassLoader.getResource("");得到的是当前类classloader加载类的起始位置

    Main.class.getClassLoader.getResourceAsStream("");从classpath的起始位置查找资源

    但是

    Main.class.getResource("/"); 表示从classpath目录下找

    也就是说 Main.class.getResource("/"); 等价于 Main.class.getClassLoader.getResource("");

    但是 Main.class.getClassLoader.getResourceAsStream("/"); 返回的是null

    关于Servlet 资源路径

    ServletContext.getRealPath("/") 返回的是 war 包展开后的从系统根目录到war展开地址的根路径,比如windows 就是 file:///d/path/to/war/

    也就是上面做了两个动作, 先从 war 根目录找到资源, 然后返回资源完整路径

    同样的 ServletContext.getResource("/") 返回的的是从war 根目录查找到的资源,只不过返回的是 URL ServletContext.getResourceAsStream("/") 返回的是和上面一样的 InputStream

    但是 ServletContext.getResource("") 返回的是相对于URL的路径,相当于从当前URL根路径查找资源 ServletContext.getResourceAsStream("") 和上面一样,只不过返回InputStream

    关于maven工程下springmvc资源路径配置

    Java 源代码文件资源在Maven工程中的默认路径是: src/main/java,这个路径就是放置你的Java源代码文件。默认的路径是无需在Maven的pom.xml配置文件中指定的
    资源文件的缺省路径为src/main/resources,这样Maven在打包成war文件的时候,会将src/main/resources的资源文件复制到class目录。
    因此对于Spring mvc项目,servlet的配置文件springmvc-context.xml缺省会放置在 src/main/resources/springmvc-context.xml。
    对应的的web.xml指定的<param-value>classpath:springmvc-context.xml</param-value> 中,servlet的配置文件springmvc-context.xml 需要从 class目录下查找。

  • 相关阅读:
    【HDOJ6701】Make Rounddog Happy(启发式合并)
    【HDOJ6731】Angle Beats(极角排序)
    【BZOJ1132】Tro(叉积)
    【CF1236D】Alice and the Doll(set)
    Storm
    Spark
    Python基础(2)
    数据库漫谈
    Python基础(1)
    C/C++链接过程相关
  • 原文地址:https://www.cnblogs.com/michaelShao/p/5983442.html
Copyright © 2011-2022 走看看