首页
学习
活动
专区
圈层
工具
发布

springboot-maven项目+jpa 运行过程中执行resources下sql脚本文件-ClassPathResource和ScriptUtils.executeSqlScript的使用

需求背景简述:springboot-maven项目在运行过程中,需要依据用户的行为来触发数据库建表操作,原来的jpa动态建表已经不能支撑(jpa是在项目启动时动态建表,也可能我没找到项目运行中利用jpa...忽略部分代码 Resource resource = new ClassPathResource("db/test.sql"); //获取到resource对象后,可以调用resouce.getFile...如果成功了,那么下面就不用看了 其他问题 找不到脚本文件 报错 看到有情况是按照上述jpa方式执行了代码,但是仍然有类似找不到文件的报错 如: java.io.FileNotFoundException...(ClassPathResource.java:195) 分析 ClassPathResource方法是到 classPath* 下去找,然后在项目本地的目录下找classPath下是否有这个文件(maven...的classPath在 “target\classes”目录下) 解决 可以检查下pom.xml文件, 可能是springboot的maven默认只加载了classPath同级目录下的文件,想要加载其他文件可以使用配置标签

48010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    项目打包成 jar 后包无法读取srcmainresources下文件

    下面是错误截图 7049d7cf36f345669bc14065a1a3eacf.png 可以看到在服务器中日志提示: java.io.FileNotFoundException: File 'holiday.txt...中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式 /** * 通过ClassPathResource类获取,建议SpringBoot中使用 * springboot...然后调用getInputStream 来获取资源文件 下面我们来分析这些代码 在 ClassPathResource 在实例化时, 会初始化类加载器 classLoader 并将项目所用到的所有路径加载到类加载器...出现找不到文件的情况, 我们只需要例化ClassPathResource(文件名) 对象. 然后调用getInputStream 来获取资源文件....就能获取任意环境下项目内的文件 如果想打算使用其他方式来获取resources 目录下的文件, 可以参见 这篇博客 .

    15.9K20

    springboot读取resources文件夹下的文件

    第一种方法 File file =  ResourceUtils.getFile("classpath:template.docx"); //获取文件的相对路径  可在控制台打印查看输出结果 String...getResourceAsStream("template.docx"); File file = new File(ins); 只是适合打成war下使用的,有一些在eclipse或者Idea下使用时正常的,但是一打成jar就会出现FileNotFoundException...比如:在开发中,我们需要获取类路径下的某个资源文件,一般我们都会使用ResourceUtils工具类,快捷方便,但是在打包的时候,会出现一些异常 解决方案也很简单,换一个工具类就可以了:  ClassPathResource...classPathResource =  new ClassPathResource("template.docx");  InputStream is = classPathResource.getInputStream

    9.3K10

    java获取 resources 目录资源文件的 6 种方法

    ,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../** * 直接使用getResourceAsStream方法获取流 * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件 * * @param fileName...,不使用getClassLoader可以使用getResourceAsStream("/配置测试.txt")直接从resources根路径下获取,SpringBoot中所有文件都在jar包中,没有一个实际的路径...类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../** * 通过ClassPathResource类获取,建议SpringBoot中使用 * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件 * * @param

    22.4K31

    SpringBoot异步任务获取HttpServletRequest

    前言 在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案 原因分析 @...Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null 在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中body...public static void remove(){ requestTransmittableThreadLocal.remove(); } } 注:系统中所有Request获取需要统一从...CommonUtil指定来源,例如token鉴权等 自定义request过滤器 通过自定义过滤器对Request的内容进行备份保存,主线程结束时Request清除结束不会影响到子线程的相应参数的获取,也适用于增加拦截器.../过滤器后body参数无法重复获取的问题。

    1.1K60

    ResouceUtils.getFile()取不到Jar中资源文件源码

    org.springframework.util.ResourceUtils.getFile("classpath:abc.xml"); 在intellij中间运行的时候没有问题,但是打成jar包之后出现了如下错误 Caused by: java.io.FileNotFoundException...ResourceUtil.getFile("classpath:xxxx.txt")方法是不可以读取到的,在JVM中是没有绝对路径的,所有的路径都是依托于读取文件的当前类对应的classload来加载的,所以我们需要先获取到当前类的...https://www.cnblogs.com/chyu/p/8407541.html 方案二:或者InputStream inputStream = new ClassPathResource(fileName...).getInputStream() 具体代码如下 ClassPathResource classPathResource = new ClassPathResource("configfile/config.txt..."); InputStream inputStream = classPathResource.getInputStream(); 将读取的文件转成流,再对流进行操作

    1.8K20

    Java获取resources目录下的资源文件方法

    ,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。...,不使用getClassLoader可以使用getResourceAsStream("/people.txt")直接从resources根路径下获取,SpringBoot中所有文件都在jar包中,没有一个实际的路径...类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。...查看代码   /** * 通过ClassPathResource类获取,建议SpringBoot中使用 * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件...classPathResource = new ClassPathResource(fileName); InputStream inputStream = classPathResource.getInputStream

    2.2K10

    读取 resources 目录下文件路径的九种方式

    ,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../**  * 直接使用getResourceAsStream方法获取流  * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件  *  * @param fileName...类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../**  * 通过ClassPathResource类获取,建议SpringBoot中使用  * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件  *  * @param... classPathResource = new ClassPathResource(fileName);     InputStream inputStream = classPathResource.getInputStream

    1.1K43

    获取 resources 目录资源文件的 9 种方法,还有谁不会?!

    ,上面的几种方式都需要获取文件路径,但是在SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../**  * 直接使用getResourceAsStream方法获取流  * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件  *  * @param fileName...类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。.../**  * 通过ClassPathResource类获取,建议SpringBoot中使用  * springboot项目中需要使用此种方法,因为jar包中没有一个实际的路径存放文件  *  * @param... classPathResource = new ClassPathResource(fileName);     InputStream inputStream = classPathResource.getInputStream

    3.6K10
    领券