mom*_*omo 24 spring spring-mvc
我试图获取一个文件(或目录)下 /WEB-INF/.../
在请求之外.我需要在服务器启动时加载的bean中.
我能找到的所有解决方案要么使用XML文件ClassPathXmlApplicationContext要么要求获取servlet上下文或使用当前正在执行的类.对我来说似乎很难看.
我怎么能得到一个File("/WEB-INF/myDir/").必须有办法,不!?
axt*_*avt 45
只要您的bean在Web应用程序上下文中声明,您就可以获得ServletContext(使用ServletContextAware或通过自动装配)的实例.
然后,您可以直接(getResourceAsStream(),getRealPath())或使用访问webapp目录中的文件ServletContextResource.
由momo编辑:
@Autowired
ServletContext servletContext;
... myMethod() {
File rootDir = new File( servletContext.getRealPath("/WEB-INF/myDIR/") );
}
Run Code Online (Sandbox Code Playgroud)
我使用Spring DefaultResourceLoader和Resource来读取WEB-INF或*.jar文件中的任何资源.像魅力一样工作.祝好运!
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
public static void myFunction() throws IOException {
final DefaultResourceLoader loader = new DefaultResourceLoader();
LOGGER.info(loader.getResource("classpath:META-INF/resources/img/copyright.png").exists());
Resource resource = loader.getResource("classpath:META-INF/resources/img/copyright.png");
BufferedImage watermarkImage = ImageIO.read(resource.getFile());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38710 次 |
| 最近记录: |