java spring的相对路径,绝对路径等转

本文详细介绍了在Spring框架中如何使用相对路径和绝对路径进行资源定位,包括不同上下文下的路径基准目录,以及如何通过多种方法获取资源文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、相对路径

关键字:基准目录

1、Spring中基准目录

      ClassPathXmlApplicationContext

                                                         默认:classpath

                                  加classpath前缀 :classpath          

                             

      FileSystemXmlApplicationContext

                                                        默认:项目根目录

                                 加classpath前缀:classpath


二、绝对路径

1、获取方法(假设在类 FileTest中)

    当前类FileTest.class 的绝对目录:FileTest.class.getResource("")

    

  •     当前classpath的绝对目录:

                                                    FileTest.class.getResource("/");

                                                    FileTest.class.getClassLoader().getResource("")

                                                    Thread.currentThread().getContextClassLoader().getResource("")  推荐

                                                    ClassLoader.getSystemResource("");

                                                   

    

2、Web 应用程序

       Web应用程序根目录:    ServletContext.getRealPath("/")


三、不同类型资源访问方式总结

1、 classpath

  •        URL  url  =  getClassLoader().getResource("java/lang/String.class")
  •        InputStream  inputStream  = getClassLoader().getResourceAsStream("java/lang/String.class")

2、web 应用

  •        URL url  = servletContext.getResource("/WEB-INF/web.xml") 
  •        InputStream  inputStream = servletContext.getResourceAsStream("/WEB-INF/web.xml")

3、文件系统

  •       File  file  =  new File("c:\\test.txt");
  •       InputStream inputStream = new FileInputStream(resourceFile)                                  

 4、访问Jar/Zip 文件中的资源

         URL  jarUrl  = new  File("/lib/rt.lib"").toURI().toURL();

         URL  resourceUrl  =  new URL("jar:" + jarURL +“!/java/lang/String.class”);

         InputStream  inputStream  = resourceUrl.openStream();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值