在Spring Boot中,要访问资源myresource.json
,我可以同时使用classpath:
或相对路径,例如./myresource.json
有什么区别?我应该使用哪一个?
答案 0 :(得分:2)
在特定应用程序上下文中调用getResource()
时,如果指定的位置路径没有./myresource.json
这样的特定前缀,您将获得适合该特定应用程序的资源类型上下文。
如果对ClassPathXmlApplicationContext实例执行了getResource()
,它将返回一个ClassPathResource
。如果对一个FileSystemXmlApplicationContext
实例执行了相同的方法,您将得到一个{{1} }。对于FileSystemResource
,您将获得WebApplicationContext
,依此类推。
这样,您可以按照适合特定应用程序上下文的方式加载资源。
另一方面,您也可以通过指定特殊的ServletContextResource
:前缀来强制使用ClassPathResource
,而不管应用程序上下文类型如何。