Spring Framework 5.0:Resources资源文件获取接口
来源:互联网 发布:java分布式 编辑:程序博客网 时间:2024/06/04 19:17
如果我们把相关的资源文件放在resources
里面,最后就会编译到target
目录下。
Resources
https://docs.spring.io/spring/docs/5.0.1.BUILD-SNAPSHOT/spring-framework-reference/core.html#resources
Spring给我们封装了统一的接口,实现类有:
ClassPathResourceFileSystemResourceUrlResourceByteArrayResourceInputStreamResourceServletContextResource
代码演示:
// 资源对象 Resource resource = new ClassPathResource("1.txt"); // 文件对象 File file = resource.getFile(); // 读取文件 BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String str; while ((str = bufferedReader.readLine()) != null){ System.out.println(str); // 打印读取到的内容 } bufferedReader.close();
成功读取到了1.txt
文件中的内容。
上面代码是通过classpath的方式,如果换作FileSystemResource
呢?
Resource resource = new FileSystemResource("/绝对路径/resources/1.txt");
文件系统的方式。
ResourceLoader
https://docs.spring.io/spring/docs/5.0.1.BUILD-SNAPSHOT/spring-framework-reference/core.html#resources-implementations-inputstreamresource
ResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource = resourceLoader.getResource("classpath:1.txt"); // 文件对象 File file = resource.getFile(); // 读取文件 BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String str; while ((str = bufferedReader.readLine()) != null){ System.out.println(str); // 打印读取到的内容 } bufferedReader.close();
使用ResourceLoader
不一样的地方,要写一个前缀。
ResourceLoader resourceLoader = new DefaultResourceLoader();Resource resource = resourceLoader.getResource("classpath:1.txt");
怎么结合到IoC容器中
我们前面学了IoC容器
这个概念,我们的代码也是要统一到IoC容器里面,在Spring MVC里也是使用IoC容器来进行各种组件的加载。
因为,我们要考虑如何在IoC容器里实现?
1、比如我们有个MyTest组件
@Component("MyTest")public class MyTest { public void show() throws Exception { ResourceLoader resourceLoader = new DefaultResourceLoader(); Resource resource = resourceLoader.getResource("classpath:1.txt"); // 文件对象 File file = resource.getFile(); // 读取文件 BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String str; while ((str = bufferedReader.readLine()) != null){ System.out.println(str); // 打印读取到的内容 } bufferedReader.close(); }}
注意关键代码:@Component("MyTest")
2、
public static void main(String[] args) throws Exception{ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.scan("SpringLean"); context.refresh(); MyTest myTest = context.getBean("MyTest",MyTest.class); myTest.show(); }
这样就实现了
3、上面功能实现了,但还不够,我们还需要优化
@Autowired ApplicationContext applicationContext; public void show() throws Exception { Resource resource = applicationContext.getResource("classpath:1.txt"); // 文件对象 File file = resource.getFile(); // 读取文件 BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String str; while ((str = bufferedReader.readLine()) != null){ System.out.println(str); // 打印读取到的内容 } bufferedReader.close(); }
阅读全文
0 0
- Spring Framework 5.0:Resources资源文件获取接口
- spring的resources---针对于资源文件的统一接口
- Spring获取资源文件
- Spring Resource接口获取资源
- 获取程序资源 Resources
- Spring Resources接口
- Android:Resources资源文件
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- 通过Spring Resource接口获取资源
- spring bean装配(bean的作用域、bean的生命周期、Aware接口、Bean的自动装配Autowiring、资源文件Resources )
- HDU 1160 FatMouse's Speed (DP)
- vue书写注意事项(1)
- sql server 截取字符串写法
- 97 Things Every Programmer Should Know
- frameset
- Spring Framework 5.0:Resources资源文件获取接口
- 骑驴找马面试难,你可以这样解决!
- JAVA中NIO,AIO,BIO详解
- windows下安装OpenSSL+vs2010(不使用ms\do_ms命令)
- getResourceAsStream
- 台湾大学深度学习课程 学习笔记 lecture3-1 Recurrent Neural Network (RNN)
- Weak Pair HDU
- 创建Servlet时无法导入应该有的类,可能是相应的jar包没有导入
- 安装lamp