我正在尝试获取下的文件(或目录) /WEB-INF/.../
/WEB-INF/.../
在请求之外。我需要在服务器启动时加载的Bean中使用它。
我可以找到的所有解决方案都希望使用XML文件,ClassPathXmlApplicationContext或者想要获取servlet上下文的请求,或者使用当前的执行类。在我看来很难看。
ClassPathXmlApplicationContext
我怎样才能得到一个File("/WEB-INF/myDir/")。必须有一种方法,不!
File("/WEB-INF/myDir/")
只要在Web应用程序上下文中声明了bean,就可以获取ServletContext(使用ServletContextAware或通过自动装配)的实例。
ServletContext
ServletContextAware
然后你就可以在webapp目录直接访问文件(getResourceAsStream(),getRealPath()),或使用ServletContextResource。
getResourceAsStream()
getRealPath()
ServletContextResource
由momo编辑:
@Autowired ServletContext servletContext; ... myMethod() { File rootDir = new File( servletContext.getRealPath("/WEB-INF/myDIR/") ); }