SpringBoot
树欲静而风不止
这个作者很懒,什么都没留下…
展开
-
持久化SSE对象
SpringBoot整合SSE,实现后端主动推送DEMO前些日子写了整合SSE得demo。但是SSE对象是存储在ConcurrentHashMap中。在正式环境明显就不行了,服务重启一下的话都没有了。那么要持久化,第一选择放redisSseEmitterStoreController修改异步发送消息service跑起来之后,结果报错DefaultSerializer requires a Serializable payload but receiv原创 2024-08-23 17:08:31 · 503 阅读 · 0 评论 -
quartz实现动态定时任务管理
queryDatabaseForNewSecond==1 可以用来与库中对比,周期配置如有变更,那么需要更新。一开始打算在job中直接更新,更新也是需要停掉,再newScheduleBuilder、newTrigger,再启。毫无疑问,quartz更专业,功能更强大。支持事务,支持任务持久化。配置中,固定周期,单位秒。需要任务每间隔这个秒数 执行进行统计。用spring的schedule每一分钟同步一次。要实现这个需求,之前一直在用的多线程方案也行。本次就用quartz来实现动态任务。原创 2024-08-02 15:38:46 · 414 阅读 · 0 评论 -
cron表达式获取上次执行时间和下次执行时间
业务逻辑中,当前时间于下次执行时间小于等于一分钟,创建任务。并且需要根据cron表达式知道上一次执行时间。二个时间是作为业务逻辑判断的条件。这边的now需要传入,因为需要忽略程序执行的毫秒级,所以需要每次对同一个时间进行操作。扩展循环次数来确保覆盖足够的周期。与前端协商,存储就用cron表达式。我给予修正了,符合自己的项目需求。,但是此文中提供的代码存在问题。2.3&2.4方法参考。月周日,都在符合预期。原创 2024-08-01 09:50:33 · 578 阅读 · 0 评论 -
SpringBoot整合SSE,实现后端主动推送DEMO
说起服务端主动推送,大家第一个想到的一定是WEBSOCKET。作为软件工程师,不能无脑使用一种技术,要结合实际情况,择优选取。SSE(Server-Sent Events)相比于WEBSOCKET1、轻量化、兼容性 基于传统的HTTP协议,所以浏览器兼容性比较好2、 只支持单向通讯。(服务器->客户端)原创 2024-07-17 14:39:25 · 883 阅读 · 0 评论 -
Spring Security Oauth2密码模式 登录密码RSA加密
思路很清晰,原先用BcryptPasswordEncoder,那么继续用这个,只不过在这之前加上RSA解密。用了java.security自带的生成器。方法中,也有passwordEncoder。需要在解密进行异常捕获,密文不合规之类的。在 oauth认证服务器配置。附加解密后端util。原创 2024-07-17 09:25:09 · 466 阅读 · 0 评论 -
MybatisPlus多条件 or()的使用
1、bitCode or iotStr 跟其他ID一个都不能有重复。2、模糊查询codeOrName变量匹配二个字段。搞混了一次,特此笔记。原创 2024-03-29 14:46:24 · 5939 阅读 · 0 评论 -
ResourceDatabasePopulator 初始化函数及存储过程
因ResourceDatabasePopulator 的默认语句分隔符就是英文分号。函数及存储过程中,必须用到。改动默认分隔符为二个英文分号。并把ddl中默认语句结束符一个分号改成2个。data 是ddl,func是函数。原创 2024-03-14 15:03:41 · 301 阅读 · 0 评论 -
Can not find ‘Converter‘ support class List.
用easyexcel做导出的时候,会碰到这个问题,那是因为你导出的bean里面包含list对象。list对象需要自定义转换器。找来找去我记得我这边不需要导出list,但是easyexcel会。那么此时需要一个注解。原创 2024-02-01 13:42:50 · 434 阅读 · 0 评论 -
mybatis父查询方法参数传递到子查询
父查询中的timeType,在父查询中创建了虚拟列,就返到子查询中了。原创 2023-10-19 11:02:11 · 867 阅读 · 0 评论 -
服务间调用Bean属性名称转化
JsonProperty("routeList") 指的是序列化传给前端,前端看到属性名。@JsonProperty("productName") 指服务传过来反序列化和序列化的名字对应的都叫productName。@JsonSetter("list") 指的是微服务调用方法返回是list,list这个集合名字转到route。原创 2023-07-28 13:55:32 · 224 阅读 · 0 评论 -
SpringCloud OAuth2 登录加入图形验证码
throw new ValidateCodeException("验证码不存在,请重新获取");throw new ValidateCodeException("验证码不能为空,请输入验证码");if(!throw new ValidateCodeException("验证码不匹配");这边是把验证码放到session里面,目前认证服务没有集群,后期如果集群的话,可以放入Redis。原创 2023-05-06 14:44:14 · 551 阅读 · 0 评论 -
MybatisPlus根据特定条件批量更新指定字段
查了相关资料,可用 on duplicate 也可以用 foreach 并开启&allowMultiQueries=true ,也可以自定义 SQL注入器扩展。那么null值,直接更新了,这明显就出bug了,但是又不能取消,因为确实有场景要用。乍一看看感觉没问题,但是如果Route bean中有。结合老项目实际情况。选择foreach 上代码。原创 2023-04-28 17:10:13 · 6164 阅读 · 0 评论 -
EasyExcel导入类型转换错误自定义异常
继承 AnalysisEventListener 重写 onException。当抛出异常,停止读剩余数据,直接返回。当没有抛出异常,忽略此行,继续读取插入。Before未定义异常情况。原创 2023-02-14 09:01:29 · 2549 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.util.Map
我这边是有部分项目拷的之前的,namespace漏改了,关键Mybatis一个mapper语法错误,全部mapper不可执行。查看项目下的所有xml,namespace or resultType & resultMap 有误。MybatisPlus3.5.2,最简单的方法 service的list()这方法想想不会错,第一直觉看配置,哪里配置错了吧 - 看了一圈没毛病。原创 2023-01-30 09:23:37 · 628 阅读 · 0 评论 -
@Transactional 事务失效场景类内部调用实测
环境springboot2.7,mysql5.7。原创 2022-08-30 15:07:28 · 874 阅读 · 0 评论 -
字符串表达式 不支持符号多目运算
以上用的是ScriptEngine,我还试了很多exp4j、Groovy、JEP、JEXL 、hutool。只能手写处理一下字符串。其实应该为false。原创 2022-08-23 17:18:03 · 238 阅读 · 0 评论 -
JexlEngine和ScriptEngine 执行顺序问题
有着计算机基础的,应该心算一下,就知道的是false,可实际结果。JexlEngine一样存在这个问题。我开始怀疑我的计算机常识。怀疑&& 比 || 更早执行,做测试。再来简洁一点,找到问题所在。对的呀,并级,左结合。原创 2022-08-23 11:25:42 · 366 阅读 · 0 评论 -
SpringBoot上传xlsx并批量导入
SpringBoot上传xlsx 批量导入原创 2022-08-12 16:23:12 · 345 阅读 · 0 评论 -
Spring Security OAuth2 改变jwt带默认authorities信息
继承DefaultAccessTokenConverter 重写方法。Oauth2ServerConfig add处新增。找到源码 一切好办,原创 2022-08-05 17:15:42 · 643 阅读 · 0 评论 -
Java 调用python 传数组参数
Java 调用python 传数组参数原创 2022-08-01 13:57:46 · 761 阅读 · 0 评论 -
MybatisPlus listObjs 返回只查询一个字段类型集合
MybatisPlus listObjs 返回字段类型集合原创 2022-07-30 16:02:14 · 8227 阅读 · 0 评论 -
JdbcTemplate DateTime转java.util.Date时区错误
设置了serverTimezone=GMT%2B8JdbcTemplate代码写成时区不对,格式也不对。 在FireAlarmBean中修改原创 2022-07-05 11:02:57 · 685 阅读 · 0 评论 -
README.md Gitee图片不显示
不正常啊,格式都对,图片也能正常打开,这是为啥。本项目下,改成相对路径就正常显示了,我也不知道为啥?后续查阅相关资料是跟项目配置有关系。You hasn't joined this enterprise 这是别人打开这个图片的提示。我想idea中也是这个道理。需要把仓库公开。...原创 2022-05-03 11:57:57 · 725 阅读 · 0 评论 -
GateWay Caused by: java.net.SocketException: Network is unreachable: no further information
2022-04-26 14:42:19.042 ERROR 5568 --- [reactor-http-nio-21] a.w.r.e.AbstractErrorWebExceptionHandler : [f44edf68-3769] 500 Server Error for HTTP GET "/yt-common/personal/basicAuth/getPcPermissionsByPid?pid=167"io.netty.channel.AbstractChannel$Annotate.原创 2022-04-26 17:16:57 · 4612 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\2\librocksdbjni91
Nacos启动报错,报错信息如下2021-12-08 11:03:24,335 INFO Nacos Log files: C:\cjq\nacos\logs2021-12-08 11:03:24,336 INFO Nacos Log files: C:\cjq\nacos\conf2021-12-08 11:03:24,338 INFO Nacos Log files: C:\cjq\nacos\data2021-12-08 11:03:24,345 ERROR Startup err原创 2021-12-08 13:50:31 · 2588 阅读 · 0 评论 -
spring.mvc.async.request-timeout 配置无用
配置spring.mvc.async.request-timeout=20000代码@GetMapping("test") public String test(){ try { Thread.sleep(60000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.print原创 2021-11-04 15:14:46 · 7051 阅读 · 2 评论 -
OpenFeign调用微服务时header传值
1、直接写在调用微服务对应的方法中List<String> insertQualityControl(@RequestBody List<Quality> list, @RequestHeader("user") String userStr);只针对这一个服务的方法调用2、通过feign拦截器@Configurationpublic class FeignConfig { @Bean("requestInterceptor") public原创 2021-09-19 12:18:02 · 856 阅读 · 0 评论 -
java validation 分组嵌套校验
分组接口public interface ValidGroup extends Default { interface Crud extends ValidGroup{ interface Create extends Crud{ } interface Update extends Crud{ } interface Query extends Crud{ } i原创 2021-08-31 20:32:23 · 2036 阅读 · 0 评论 -
FeignClient 抛出异常时怎么拿到返回值?
第一种情况最先调用的服务接口报错,返回统一异常处理的json,结果feign是转换的类型错误。都没有打印json内容。第二种情况各种查找资料,最后发现服务返回的状态码不是200,就不会进入到Feign的默认ErrorDecoder中调整被调用服务的全局异常添加如下代码ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRe.原创 2021-08-21 16:27:09 · 3704 阅读 · 1 评论 -
Mybatis-Plus多数据源简单整合
项目中只有一处地方用到1、Maven<!-- mybatis_plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version>原创 2021-07-27 10:15:44 · 240 阅读 · 0 评论 -
SpringCloud GateWay 从Redis中读取OAuth2并校验
ResourceServerConfig/** * 资源服务器配置 * @author cmy * @date 2021/5/21 15:23 */@AllArgsConstructor@Configuration@EnableWebFluxSecuritypublic class ResourceServerConfig { @Autowired AuthorizationManager authorizationManager; @Autowired原创 2021-07-21 11:27:12 · 3036 阅读 · 6 评论 -
allowFormAuthenticationForClients作用
说明/** * * 主要是让/oauth/token支持client_id和client_secret做登陆认证如果开启了allowFormAuthenticationForClients,那么就在BasicAuthenticationFilter之前 * 添加ClientCredentialsTokenEndpointFilter,使用ClientDetailsUserDetailsService来进行登陆认证 * */security.all原创 2021-07-16 15:06:45 · 2419 阅读 · 0 评论 -
SpringBoot+SpringSecurity+Jwt+Mybatis-Plus+Swwager
因公司业务为PC端后台管理居多,session有这得天独厚优势。本月有个项目,有一端是小程序。天然不支持Cookie。因此打算用Jwt token方式博客简单讲解一下与Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager搭建的区别pom去掉 SpringSession Redis依赖 <!-- jwt --> <dependency> .原创 2021-05-05 11:01:06 · 509 阅读 · 0 评论 -
nacos配置中心springboot不会自动刷新
配置正确控制台更改也有读取到需要插入 @RefreshScope@RestController@RequestMapping("/test")@RefreshScopepublic class TestController { @Value("${user.name:}") private String name; @GetMapping("config") public String testConfig(){ r..原创 2021-04-20 17:48:39 · 2155 阅读 · 0 评论 -
SpringBoot 参数校验 异常捕获统一处理
Maven <!-- validation --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>Control.原创 2021-01-09 10:31:51 · 836 阅读 · 5 评论 -
org.springframework.validation.BeanPropertyBindingResult
环境springboot2.4.1validation 效验post or get 方式表单方式提交转对象,效验出错,不进 MethodArgumentNotValidException or ConstraintViolationException 异常处理。进全局异常处理异常org.springframework.validation.BeanPropertyBindingResult: 1 errorsField error in object 'testBe...原创 2021-01-08 17:10:06 · 8698 阅读 · 2 评论 -
win7 docker 镜像切换为国内
打开虚拟机打开文件/var/lib/boot2docker/profileEXTRA_ARGS='--label provider=virtualbox--registry-mirror=https://registry.docker-cn.com'CACERT=/var/lib/boot2docker/ca.pemDOCKER_HOST='-H tcp://0.0.0.0:2376'DOCKER_STORAGE=aufsDOCKER_TLS=autoSERVERKEY=/var/原创 2020-11-28 10:27:22 · 269 阅读 · 0 评论 -
dial tcp: lookup index.docker.io on 10.0.2.3:53: server misbehaving
Docker在win7环境虚拟机中 docker pull hello-world 报错Error while pulling image: Get https://index.docker.io/v1/repositories/library/hello-world/images: dial tcp: lookup index.docker.io on 10.0.2.3:53: server misbehaving解决修改虚拟机中/etc/resolv.conf修改前name..原创 2020-11-28 09:46:26 · 6369 阅读 · 2 评论 -
Springboot+SpringSecurity+SpringSession+Redis+Mybatis-Plus+Swwager
SpringSecurity,管认证与授权SpringSession+Redis 分布式session共享Mybatis-Plus 负责RepositorySwwager 负责前后端分离RESTful文档POM <!-- security --> <dependency> <groupId>org.springframework.boot</groupId> ..原创 2020-11-16 17:12:29 · 2772 阅读 · 0 评论 -
SpringSecurity动态授权流程及实现
需求:如何通过修改数据库中某个角色的对某一访问路径的权限,进而动态的限制该角色的权限。原创 2020-11-13 17:01:29 · 1335 阅读 · 0 评论