
因为springboot 项目resources/public项目设置错误。
1、首先在电脑中打开springboot项目的编辑器IDEA,如下图所示。
2、然后在test-java右击新建package(如图所示)。
3、然后在打开的窗口中,输入package名,点ok,如下图所示。
4、接着在新建的package右键新建class单元测试类,如下图所示。
5、单元测试类上加注@RunWith(SpringRunnerclass)和@SpringBootTest;单元测试类方法加注解@Test;单元测试类方法里编写单元测试代码;tip:pom文件导入spring-boot-test包。点击方法左边的绿色三角形运行单元测试代码。
注意事项:
1、Spring 框架就像一个家族有众多衍生产品例如 boot、security、jpa等等但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop 解决了面向横切面的编程然后在此两者的基础上实现了其他延伸产品的高级功能。
2、Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题因为 Spring 的配置非常复杂各种XML、 JavaConfig、hin处理起来比较繁琐于是为了简化开发者的使用,从而创造性地推出了Spring boot,约定优于配置简化了spring的配置流程。
比如我们有以下目录
|–project
|–src
|–java application
|–Testjava
|–file1txt
|–file2txt
|–build
|–java application
|–Testclass
|–file3txt
|–file4txt
在上面的目录中,有一个src目录,这是JAVA源文件的目录,有一个build目录,这是JAVA编译后文件(class文件等)的存放目录,那么,我们在Test类中应该如何分别获得 file1txt file2txt file3txt file4txt这四个文件呢看
首先讲file3txt与file4txt
file3txt:
方法一:File file3 = new File(TestclassgetResource(逗file3txt地)getFile());
方法二:File file3 = new File(TestclassgetResource(逗/javaapplication/file3txt地)getFile());
方法三:File file3 = new File(TestclassgetClassLoader()getResource(逗javaapplication/file3txt地)getFile());
file4txt:
方法一:File file4 = new File(TestclassgetResource(逗/file4txt地)getFile());
方法二:File file4 = new File(TestclassgetClassLoader()getResource(逗file4txt地)getFile());
很好,我们可以有多种方法选择,但是file1与file2文件呢看如何获得看
答案是,你只能写上它们的绝对路径,不能像file3与file4一样用classgetResource()这种方法获得,它们的获取方法如下
假如整个project目录放在c:/下,那么file1与file2的获取方法分别为
file1txt
方法一:File file1 = new File(逗c:/project/src/javaapplication/file1txt地);
方法二:。。。没有
file2txt
方法一:File file2 = new File(逗c:/project/src/file2txt地);
方法二:。。。也没有
总结一下,就是你想获得文件,你得从最终生成的class文件为着手点,不要以java文件的路径为出发点,因为真正使用的就是class,不会拿个java文件就使用,因为java是编译型语言嘛
至于getResouce()方法的参数,你以class为出发点,再结合相对路径的概念,就可以准确地定位资源文件了,至于它的根目录嘛,你用不同的IDE build出来是不同的位置下的,不过都是以顶层package作为根目录,比如在Web应用中,有一个WEB-INF的目录,WEB-INF目录里面除了webxml文件外,还有一个classes目录,没错了,它就是你这个WEB应用的package的顶层目录,也是所有class的根目录逗/地,假如clasaes目录下面有一个filetxt文件,它的相对路径就是地/filetxt地,如果相对路径不是以地/地开头,那么它就是相对于class的路径。。
还有一个getResourceAsStream()方法,参数是与getResouce()方法是一样的,它相当于你用getResource()取得File文件后,再new InputStream(file)一样的结果。
看不太懂你的意思,猜想你是希望通过相对路径访问你的properties文件。你说你把文件放到了WEB根目录中,那么我可以这样获得Properties对象
//servlet中
String realPath = thisgetServletContext()getRealPath("/configproperties");//这个路径是相对于Web程序的,如果你放在WEB-INF目录中就是"/WEB-INF/configproperties"
InputStream in = new FileInputStream(realPath);//获得properties文件的读取流对象
Properties p = new Properties();
pload(in);
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。
举例:
XMLSclassgetClass()getResourceAsStream("/test/testtxt");
解释:XMLSclassgetClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。
说明几点:
1src/main/webapp是标准web目录,webapp下有WEB-INF、static两个目录;WEB-INF存放webxml,编译的class,第三方jar,以及不允许浏览器直接访问的View模版,图里只有webxml和view模板;而static目录存放所有静态文件。
2src/main/resources目录中存放的是Java程序读取的classpath资源文件,除了JDBC的配置文件jdbcproperties外,我们又新增了一个logbackxml。项目需要执行日志,所以需要配置logbackxml
3使用Spring MVC时,整个Web应用程序按如下顺序启动:
启动Tomcat服务器;
Tomcat读取webxml并初始化DispatcherServlet;
DispatcherServlet创建IoC容器并自动注册到ServletContext中。
启动后,浏览器发出的>
以上就是关于springboot 项目resources/public下我新建了一个文件夹,为什么target里面不会生成全部的内容,包括:springboot 项目resources/public下我新建了一个文件夹,为什么target里面不会生成、resources.getresourceasreader方法读取什么样的文件、JAVA的config.properties 放在WEB项目什么地方到底怎么读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)