之前SpringBoot项目中Controller输出图片,使用的是@ResponseBody 返回byte[]数组,不过发现接口调用返回了500错误,Internal Server Error,但是后台代码不报任何错误。 经过调查,之前配置Spring使用的是WebMvcConfigurerAdapter,因为文档说这个类已经过时,用WebMvcConfigurationSupport取代了,换回WebMvcConfigurerAdapter就恢复正常了。 以上是一种解决方案,不过既然WebMvcConfigur…

2022-04-17 0条评论 667点热度 0人点赞 admin 阅读全文

SpringBoot应用Rest接口长时间未被调用的情况下,尝试一次调用,连接数据库读取数据,会发生报错: No operations allowed after connection closed. Possibly consider using a shorter maxLifetime value application.yml加入如下配置: spring: datasource: hikari: minimum-idle: 3 max-lifetime: 0 maximum-pool-size: 5 配置说…

2022-04-16 0条评论 1016点热度 0人点赞 admin 阅读全文

很早之前写异步任务,可能就是直接使用Thread类来操作,例如: new Thread() { @Override public void run() { // 要执行的异步操作 } }.start(); // 或者这样: new Thread(() -> { // 要执行的异步操作 }).start(); 后来慢慢改进成:java.util.concurrent.Executor 在SpringBoot下,可以更加优雅的实现这些操作 首先开启异步的配置,只要增加@EnableAsync注解就可以了 @Ena…

2022-04-09 0条评论 574点热度 0人点赞 admin 阅读全文

如题,SpringBoot/SpringCloud/SprintSecurity下集成swagger打开 http://loclahost:port/swagger-ui.html弹框提示如下错误: Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. SpringSecurity需要增加swagger-ui相关url规则放行…

2022-03-29 0条评论 711点热度 0人点赞 admin 阅读全文

Elasticsearch 是java开发的,基于 Lucene 的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful Web接口。Elasticsearch 可以快速有效地存储,搜索和分析大量数据,而且在处理半结构化数据(即自然语言)时特别有用。 应用集成Elasticsearch有4种方式: REST Client Jest Spring Data Spring Data Elasticsearch Repositories 本文主要介绍一下用Spring Data Elasticsear…

2022-03-26 0条评论 769点热度 0人点赞 admin 阅读全文

在用SpringBoot做API输出的时候,我们希望输出的对象是转换成JSON格式的,另外如果对象中有日期类型,希望能够对日期进行统一的格式化。 首先对SpringBoot项目进行配置(jsonMapper),新建MyConfiguration.java (如果有类似的配置文件,就只要修改就可以了) @Configuration public class MyConfiguration { @Bean(name = "jsonMapper") @Primary public ObjectMapper jsonMap…

2022-03-14 0条评论 609点热度 0人点赞 admin 阅读全文

SpringBoot下使用定时任务,只需要加几个注释就可以了,详见:https://blog.terrynow.com/2021/07/10/java-spring-springboot-schedule-implement/ 不过发现一个问题,就是定时任务比较多,且时间上有冲突的时候,在一个任务执行的时候,如果正好有另一个任务开始,另一个任务可能不会执行,因为SpringBoot默认的定时任务使用的是单列队的执行器(Executors.newSingleThreadScheduledExecutor() ),对同…

2022-03-13 0条评论 1157点热度 0人点赞 admin 阅读全文

SpringBoot的配置文件中(application.yml)有时候一个key的内容可能是多行的文本(例如配置一个密钥的内容等等),如果我们直接在配置文件中写多行(就是\n分割开来的),我们在程序中获取值的时候,多行的文本会读取成空白隔开的。 例如: my: test: line1 line2 这样my.test的值会被读取成line1 line2 这样做,可以保持读取出来的是line\nline2 my: test: | line1 line2 注意test后面加了一个 | (英文竖线),就能正确读取多行了!

2022-02-24 0条评论 701点热度 0人点赞 admin 阅读全文

分享一下Java下使用SHA256withRSA签名的代码,例如微信支付APIv3中的签名,就是使用的SHA256 with RSA签名,并对结果进行base64的编码。 这里签名使用到的密钥文件,是使用了Spring的特性,通过@Value(value = "${my.wx.mchApiClientKey}")加载进来的,可以根据使用实际需求修改。 通过generateSignature函数,对要求的参数(数组)进行签名。 WXPayUtil.java 如下,在SpringBoot下我加了@Component注解…

2022-02-23 0条评论 1943点热度 0人点赞 admin 阅读全文

SpringBoot中配置了MyBatis,在开发调试的时候,需要看到当前运行的代码调用的SQL,可以这样做: application.yml中增加mybatis.configuration.log-impl 值为:org.apache.ibatis.logging.stdout.StdOutImpl # MyBatis mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 这样就能在控制台打印出当前的SQL了。

2022-02-19 0条评论 1152点热度 0人点赞 admin 阅读全文
145678