![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
springboot
文章平均质量分 59
记录springboot使用以及开发中的相关bug
家家小迷弟
这个作者很懒,什么都没留下…
展开
-
Java下载FTP服务器上的资源,附带FTP工具类
查看目录下文件操作:查看/pubmed/updatefiles下的gz结尾文件。这里有个坑:如果是匿名登录,账号密码还是要的。原创 2024-01-23 15:39:23 · 1286 阅读 · 0 评论 -
Java解析xml文档,判断对象是一个json是jsonArray还是jsonObject
即对于treeNumberList获取key为TreeNumber是一个对象,还是一个数组,再进行取值。现在需要解析出其中的内容,首先需要明确的是,文档是由一个个的标签嵌套形成的,例如整个xml文件是由许多。通过“content”这个key,获取下面的内容,解析出来是一个JSONObject对象,可以看到,整个xml文档里面,有5个DescriptorRecord嵌套,首先将文件读取并且解析为doc,再转成JSONObject对象,在debug的时候,结合xml格式,来判断下一步是怎么取值,原创 2024-01-02 15:57:40 · 2532 阅读 · 0 评论 -
自定义TypeHandler 将mysql返回的逗号分隔的String转换到List
但是在springboot里面,我没有加入上面的注册,也能运行,原因是MyBatis 可以通过自动扫描的方式发现自定义的 TypeHandler 而无需显式地在 中进行注册。后来才发现,mysql的GROUP_CONCAT返回的是字符串String类型,无法映射到定义的list里面,MyBatis 返回的结果集与接收结果的对象类型不匹配。方法一:这里可以修改接受类:,用String接受,在用String的split方法分割处理成List。原创 2023-12-05 11:07:12 · 4765 阅读 · 0 评论 -
通过百度翻译API完成Java中的中英文翻译
其中有好几处细节需要注意,需要替换为自己的appid和密钥、拼接url的时候,前半部分需要将输入的转换为UTF-8格式,不然会因为莫名其妙的符号报错,后半部分则保持原样输入,表明了是中文转英文,其他语言可以在开发文档中找到,后面通过json解析和转换,最终获取到英文结果。这里可以完善相关信息,要记住的包括APPID和密钥,这里最好不要填服务器地址,不然会报错。因为要做英文文献索引分词,所以对于索引词汇必须得是英文,将表中的中文都转换成英文。这里可以查看到具体请求的细节。注册成为个人开发者就可以,原创 2023-11-13 18:26:58 · 2656 阅读 · 0 评论 -
springboot中定时任务cron不生效,fixedRate指定间隔失效,只执行一次的问题
奇怪的是都有在执行,后来经过排查,是定时任务线程的原因:Scheduled定时任务默认的线程数只有一个,进行定时任务调度时会同步的去调度,一个执行完成后再执行另一个,项目中定时任务非常多,所以没能异步执行,解决方法是添加一个配置类,设置TaskScheduler线程数为多个,这样再执行时就会异步执行了,各个定时任务间互不影响。原创 2023-11-09 18:42:51 · 2183 阅读 · 0 评论 -
使用配置文件自定义线程池参数
pom文件中加上依赖,可以自动补全配置文件。原创 2023-07-09 14:48:50 · 521 阅读 · 0 评论 -
线程池与CompletableFuture 异步编排
通过重复利用已经创建好的线程降低线程的创建和销毁带来的损耗因为线程池中的线程数没有超过线程池的最大上限时,有的线程处于等待分配任务的状态,当任务来时无需创建新的线程就能执行线程池会根据当前系统特点对池内的线程进行优化处理,减少创建和销毁线程带来的系统开销。无限的创建和销毁线程不仅消耗系统资源,还降低系统的稳定性,使用线程池进行统一分配以下代码首先创建线程池executor,将其传入异步编排对象,它提供了四个静态方法来创建一个异步操作。原创 2023-06-18 10:38:45 · 418 阅读 · 0 评论 -
Java使用minio批量上传文件
它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinlO是一个非常轻量的服务 可以很简单的和其他应用的结合,类似NodeJS, Redis或者MySQL。MinIO是Kubernetes的原生产品,是唯一一个可在每个公共云、每个Kubernetes发行版、私有云和边缘上使用的对象存储套件。MinIO是软件定义的,在GNU AGPL v3下是100%开源的。原创 2023-06-09 15:34:21 · 2977 阅读 · 0 评论 -
openFeign远程调用返回页面404 ,对应配置文件不生效,排除数据源等问题
项目启动报错:导致这个问题的原因是因为,在 pom.xml 配置文件中,配置了数据连接技术 spring-boot-starter-jdbc 包 ,在启动配置文件时 ,Spring Boot 的自动装配机制就会去配置文件中找,相关的数据库的连接配置信息,如果找不到则抛出异常信息。一开始以为是openFeign的问题,经过检查,各种接口、注解都没问题,而且这个404感觉不是找不到路径的问题,感觉是服务本身的问题,后来写了个简单的controller,用postman测试一下。原创 2023-01-03 11:55:46 · 2122 阅读 · 0 评论 -
谷粒商城公共返回R加泛型获取不到data,反序列化之后data为空
可以看到,在经过setData以后,R的返回值里面只有msg和code,并没有data。这里需要修改公共模块中R的data方法,注释掉原来的data构造参数,并新增以下代码。远程调用以后这个给统一返回对象R加上泛型以后,获取不到data值,这里data为空。原创 2023-01-03 10:15:39 · 593 阅读 · 2 评论 -
JSR303数据校验,响应体中没有具体message信息的处理
【代码】JSR303数据校验,响应体中没有具体message信息的处理。原创 2022-11-04 16:34:13 · 179 阅读 · 0 评论 -
引入阿里云存储OSS报错:Error creating bean with name ‘ossClient‘ defined in
在引入阿里云存储的时候,在common模块导入oss相关的依赖,这里坑爹的是,视频中引入的是,github里面的东西已经更新,引用是,而我没有发现,才导致了后面的报错。原创 2022-11-03 17:21:41 · 15310 阅读 · 9 评论 -
配置gateway路由与路径重写规则,验证码503问题的解决
刷新页面:验证码为空,直接在网关里面请求验证码的方法,肯定是不行的,验证码的方法是来源于renren-fast的服务中的,因此网关应该把请求转发到renren的8080端口的服务中,在网关配置中,凡是前端项目的携带api前缀的请求,都转发(负载均衡的方式)到renren-fast服务中,这里我犯了两个错误,第一,我没有启动gateway的服务,导致验证码接口请求失败。将前缀api的,重写成renren-fast的。定义规则:前端请求接口后面加上api前缀。原创 2022-10-28 11:38:24 · 5518 阅读 · 6 评论 -
renren-fast启动失败,springboot与springcloud版本不匹配问题解决
在启动renren-fast时候,导入common模块以后,项目直接报错,任何一个服务都无法启动,看报错是循环依赖,找不到模块的问题。里面,盲猜是由于依赖管理的优先级较高,可以修改renren-fast的cloud相关版本。这里应该是renren-fast的cloud版本和springboot版本不一致问题了。中,还是会报错,没有起到作用,这里需要放到。这里需要注意的是,如果直接把。原创 2022-10-28 10:23:54 · 1436 阅读 · 0 评论 -
多模块项目在idea里面运行正常,打包失败,找不到程序包,找不到符号报错
原因就出在打包的顺序, 打包的时候会生成两种包,一个包含了本包的所有类,另一个是可执行的包,,,程序会先生成原始包,然后生成执行包,覆盖掉原始包,而原始包是根据其他包读取的,所以会出现找不到包;这种情况出现在,跨模块调用另一个模块的方法时;另一个模块恰巧也是一个可执行包,就会出现这个问题;因为两个模块都是启动类,所以会生成两个执行包,就出现这个问题了。原创 2022-09-30 15:29:32 · 3754 阅读 · 0 评论 -
idea本地运行正常,打包部署以后openFeign调用失败,返回为null,以及报错406
就是打包以后,在运行jar包的情况下,openFeign就调用不到了,查看控制台,里面打印的sql,其中的用户id参数竟然是null。admin模块中我定义的获取当前用户的方法getCurrentUser方法来获取当前用户,contract模块中,我使用openFeign调用该方法,然后获取用户的id来查询,但是页面数据为空,这就很奇怪了。,报错信息里面竟然是401,未登录的错,这就有点迷惑了,本地调用都没问题,打个包部署运行,去调用方法,竟然是未登录状态。原创 2022-09-29 15:54:20 · 3450 阅读 · 0 评论 -
jar包运行报错jar中没有主清单属性、springGateway访问接口报错302,跳转login接口
百度原因可能是:spring security框架未通过认证而将请求重定向至登录页面!因为contract模块中的接口没有涉及springsecurity的认证,而token令牌是通过之前的中继完成的,所以在启动类上的注解增加。三、成功运行jar包以后、访问相关接口、报错302,重定向请求login接口,二、找不到 / 无法创建相关的Mapper、Service等、报错。至此,项目成功打包并且运行、不过坑还在后面。注解,表明mapper所在的路径即可。为该模块启动类的包路径。原创 2022-09-29 14:54:29 · 1585 阅读 · 0 评论 -
多模块(多个启动类)本地正常,maven打包报错,通过openfeign远程调用解决模块间的冲突
首先项目结构如下,admin为后台框架主体、主要包含了登录、对导航菜单维护等一些基本接口,common为公共返回对象等配置,contract为合同业务模块,gateway网关模块、security登录验证授权模块,其中admin、contract、gateway包含启动类。:项目引入本地jar包,只在编译器里进行了配置而没有在Maven中进行配置,因为admin属于自己的jar包,没有在maven中配置,所以打包报错,这里网上有很多方法,后面也贴出了参考链接。在需要获取登录用户信息的地方先注入。原创 2022-09-23 11:44:49 · 1020 阅读 · 0 评论 -
springboot2.x使用JestClient来操作ES
springboot 2.3.0以后版本不支持自动注入JestClient,下图我们在yml文件中配置JestClient时会出现划掉的线提示。我们采取手动配置的方式在测试类中手动创建JestClientpublic JestClient getJestCline(){ JestClientFactory factory = new JestClientFactory(); factory.setHttpClientConfig(new HttpClientConfig .Builde原创 2020-08-28 23:01:07 · 1133 阅读 · 4 评论 -
springboot配置项目的访问路径没生效
在使用springboot时,在application.properties中配置了server.context-path=/boot,启动项目发现端口生效 ,而context path为空检查springboot版本为2.2.9,SpringBoot在2.0版本之后已经弃用server.context-path,而代替为server.servlet.context-path所以更换配置:server.servlet.context-path=/test 重启项目,可以通过/boot这个路径访原创 2020-08-06 12:35:14 · 1113 阅读 · 0 评论 -
SpringBoot对静态资源的拦截导致css,js等失效
跟着视频做的时候,发现自己的css和js等静态资源被拦截了, //注册拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { //静态资源 .css .js //springboot做好了静态资源映射 registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/原创 2020-08-11 14:32:28 · 1629 阅读 · 0 评论 -
springboot启动没有执行sql脚本
springboot启动时候没有执行sql建表语句,网上查到的资料是,springboot1.x和2.x不一样,(这该死的版本)原因:原理:DataSourceInitializer执行创建函数时增加了类型判断void initSchema() { List<Resource> scripts = this.getScripts("spring.datasource.data", this.properties.getData(), "data"); if (!script原创 2020-08-22 12:41:17 · 1589 阅读 · 0 评论 -
springboot2.x缓存Redis序列化问题报错java.io.StreamCorruptedException: invalid stream header: 7B224063
springboot在整合redis缓存时候,视频中是1.x,我用的是2.x版本,cacheManager的源码有很大改动,原来的很多方法也不能用,在MyRedisConfig的配置类中:springboot1.x是这样写的:@Bean public RedisCacheManager employeeCacheManager(RedisTemplate<Object, Employee> empRedisTemplate){ RedisCacheManager c原创 2020-08-27 11:33:04 · 2938 阅读 · 0 评论 -
springboot注册Servlet时候报错405,HTTP method GET is not supported by this URL
在跟着视频做springboot注册Servlet的时候,页面没有正确响应,而是报错这个URL不支持get方法自定义的MyServlet:public class MyServlet extends HttpServlet{ //处理get请求 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExcepti原创 2020-08-17 15:20:38 · 815 阅读 · 0 评论 -
Springboot+Vue+EasyExcel实现web页面的excel下载
读取跟着教程做很容易,下载自己摸索属实费了点功夫按照官网教程来做https://alibaba-easyexcel.github.io新建了一个springboot工程,然后访问地址,确实可以弹出下载页,但是现有项目整合了springsecurity,不管怎么搞,前端点击下载按钮总是没反应。后台部分:1:controller@ApiOperation(value = "导出excel") //swageer2注解,可忽略 @GetMapping("/getExcel") publ原创 2022-05-06 17:25:35 · 2178 阅读 · 0 评论 -
springboot2.x以上自定义异常以及定制异常界面exception和message的值获取不到
在跟着视频做springboot与thymeleaf自定义异常以及定制异常界面的时候exception和message的值获取不到,但是时间戳timestamp和错误码status可以获取到自定义的异常public class UserNotExistException extends RuntimeException{ public UserNotExistException() { super("用户不存在"); }}当登录名为aaa时,抛出自定义异常:用户原创 2020-08-16 22:01:47 · 1153 阅读 · 2 评论 -
springsecurity配置登录接口匿名访问无效,出现403Forbidden
在复习springsecurity的时候,出现一个奇怪的现象,登录接口已经设置为匿名访问了,但是通过postman测试的时候,出现了403禁止访问的情况security配置类已经关闭了csrf,并且/user/login已经设置为匿名访问:后来发现,原来是我入参写错了,传进来的User对象,实体类里面的用户名称是userName,而不是username,改为userName,正常登录但是数据库里面的用户名字段是user_name,这个不匹配,难道不会出现Unknown column 的错误吗原创 2022-01-13 10:51:35 · 6668 阅读 · 15 评论 -
springboot与thymeleaf整合报错javax.servlet.ServletException: Circular view path []: would dispatch back t
springboot与thymeleaf后台报错出了什么循环玩意的,前台展示的是返回值而非html页面内容controller层:@RestControllerpublic class HelloController { @RequestMapping("/hello") public String hello(){ return "HelloWorld"; } @RequestMapping("/success") public Str原创 2020-08-07 13:40:34 · 414 阅读 · 0 评论 -
springboot接收前端传值的几种方式
添加@RequestParam注解,默认会校验入参,如果请求不带入参则会报错,可以通过设置属性required=false解决,例如@RequestParam(value=“username”,required=false),这样就不会校验入参,于第一种请求方式一样。3@RequestBody//适用于POST请求,参数放在请求体中,GET没有请求体,接收application/json,用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),将接收到的参数装入实体类,......原创 2022-07-29 17:09:19 · 6720 阅读 · 0 评论 -
springboot整合RabbitMQ,收到的消息打印出来是实体对象,而不是具体内容
springboot整合RabbitMQ时,监听消息:@Servicepublic class BookService { @RabbitListener(queues = "gulixueyuan.news") public void receive(Book book){ System.out.println("收到消息"+book); }}打印的消息:当时还是懵逼了一下,打印的是收到消息com.atguigu.amqp.bean.Book@7原创 2020-08-28 10:13:48 · 416 阅读 · 2 评论 -
Springboot+Vue整合Echarts实现数据可视化
首先是后端:主要用到的是Echarts的折线图,其中需要后端传过来的数据,就是横轴和纵轴的数据,在后端,我拿到了对象的List集合,新建了两个List用来存放横轴纵轴的数据,avgList是Y轴表示利用率,timeList是x轴表示时间,再放到Map中返回给前端@ApiOperation("查询cpu分析数据列表") @PostMapping("getEchartsList/{memoryId}") public CommonResult getEchartsList( @PathVar原创 2022-05-10 11:30:19 · 2859 阅读 · 0 评论 -
springboot与thymeleaf整合的坑,页面404
很简单的springboot与thymeleaf整合,弄了很久还是报错,pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.sprin原创 2020-08-07 13:53:16 · 2118 阅读 · 0 评论 -
SpringBoot报错inferred type ‘s‘for type parameter ‘s‘ is not within its bound
跟视频做springboot整合jpa的时候,报错:inferred type 's’for type parameter ‘s’ is not within its boundpublic User getUser(@PathVariable("id") Integer id){ User user=userRepository.findOne(id) return user; }其中userRepository.findOne(id)报错,我猜是版本的问题,视频原创 2020-08-23 22:03:01 · 517 阅读 · 0 评论 -
springboot删除操作失败,报错405,springboot2.x以上不支持delete请求
在做员工删除时候,页面报错405,controller层使用的是DeleteMapping://员工删除 @DeleteMapping("/emp/{id}") public String deleteEmployee(@PathVariable("id") Integer id){ employeeDao.delete(id); return "redirect:/emps"; }后来网上查到了,springboot2.0以上版本没原创 2020-08-14 09:23:29 · 1102 阅读 · 3 评论 -
SpringBoot2.6.x集成Swagger报错,java.lang.NullPointerException,通过knife4j增强swagger,(附带swagger3.0x解决办法)
使用SpringBoot集成Swagger后,运行报错:Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException这里是版本的问题,因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。解决方法有两种:第一:降低springboot版本:把spr原创 2022-01-21 10:21:44 · 2419 阅读 · 0 评论 -
springboot配置文件进行绑定提示警告信息Spring Boot Configuration Annotation Processor not found in classpath
idea还不是很熟练,配置文件绑定时候有警告提示,在pom文件里添加依赖<!--导入配置文件处理器,配置文件进行绑定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true&l.原创 2020-08-05 15:22:48 · 281 阅读 · 0 评论 -
springboot2.6.x版本的springsecurity注入PasswordEncoder导致循环依赖问题
按照以前项目搭建框架,启动报错The dependencies of some of the beans in the application context form a cycle:目测是循环依赖什么的问题,在userSecurityConfig注入了UserService在UserService中使用了PasswordEncoder在userSecurityConfig继承的SecurityConfig中声明了一个Bean,PasswordEncoder我理解的是:这就造成了,在创建原创 2022-03-14 11:20:01 · 2252 阅读 · 0 评论 -
springboot项目按钮点击不跳转
跟着做的一个小demo,但是我的添加按钮始终无法跳转controller层://来到员工添加页面 @GetMapping("/emp") public String toAddPage(){ return "emp/add"; }前端按钮: <h2><button class="btn btn-sm btn-success"href="emp"th:href="@{/emp}">员工添加</button></h2&g原创 2020-08-12 13:48:58 · 1723 阅读 · 0 评论 -
SpringBoot整合druid报错:Failed to bind properties under spring.datasource to javax.sql.DataSource
SpringBoot项目启动报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.Failed to bind properties under spring.datasource to javax.sql.DataSource在做springboot整合druid配置数据源监控的时候,报了这个错,网上查到是由于log4原创 2020-08-21 10:55:07 · 1510 阅读 · 0 评论 -
springboot国际化失效
在做国际化的时候,点击中英文切换没有反应,始终显示中文,网上查到的原因 可能是方法名不对:区域解析器: public Locale resolveLocale(HttpServletRequest request) { String l = request.getParameter("l"); Locale locale=Locale.getDefault(); if(!StringUtils.isEmpty(l)){ String原创 2020-08-11 14:49:13 · 1243 阅读 · 0 评论