- 博客(39)
- 资源 (6)
- 收藏
- 关注
转载 @JSONField 注解详解和应用
JSONField(name = “”) 用于解决属性名和key不一致的情况,当前端传过来的字段名不一样的时候,我们可以在字段名上加上这个注解。@JSONField(format = “yyyy-MM-dd HH:mm:ss”) 用在Date属性上,自动格式化日期。@JSONField(deserialize = false) 字段是否需要进行反序列化,默认是true。@JSONField(serialize = false) 是否要把这个字段序列化成JSON。
2023-07-26 17:42:59
533
原创 vue使用canvas绘制360度仪表盘,根据鼠标选择指针获取度数。
【代码】vue使用canvas绘制360度仪表盘,根据鼠标选择指针获取度数。
2023-06-12 09:27:53
661
原创 rabbitmq消费消息:结合redis保证消息不被重复消费
如果对判断的稳定性和鲁棒性要求高,使用数据库存储消息实体,同时将 msg_id 作为数据库表的唯一键,插入重复记录一定会抛出异常,避免数据库因为并发问题产生脏数据,保证了消息消费的不可重复性。通用解决方案是在消息实体中添加全局唯一的id,例如 msg_id(消息ID),在代码中保证消息的幂等性,如果不存在已有消息,那么消费之后,将 msg_id 对应的消息实体或者序列化对象写入缓存或者数据库;如果存在已有消息,说明这条消息已被消费过,丢弃消息并且打一条告警日志。
2023-01-02 23:12:12
1098
原创 rabbitmq消息发送的可靠性:结合mysql来保证消息投递的可靠性
4. 设置一个定时任务:10秒执行一次. 根据(status)状态0并且重试时间(try_time)< sysdate()当前时间查询出List rabbitmqSendLogs消息的数量rabbitmqSendLogs。5.遍历所有消息rabbitmqSendLogs.forEach。定时任务,每隔10秒冲数据库查询,然后再从新投递到mq。数据表rabbitmq_send_log。接收rabbitmq消息的类。
2023-01-02 21:55:14
714
原创 springboot整合rabbitMQ及手动ack确认
RabbitCallbackConfig.javaWorkCustomer.javaTTest.java
2022-06-02 17:33:21
2705
原创 redis做限流量
定义一个注解标明需要使用限流的接口import java.lang.annotation.*;import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.RetentionPolicy.RUNTIME;@Retention(RUNTIME)@Target(METHOD)public @interface AccessLimit { int seconds()
2022-03-28 11:25:31
1432
原创 二.JSR303数据校验数据结合全局异常处理
@RequestMapping("/save") public R save(@Valid @RequestBody BrandEntity brand) {// if (bindingResult.hasErrors()) {// HashMap<Object, Object> map = new HashMap<>();// //获取错误的校验结果// bindingResu...
2021-09-29 16:35:03
162
原创 一.JSR303数据校验数据
1.给bean的字段添加校验注解(javax.validation.constraints.),并自定义message提示import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import java.io.Serializable;import java.util.Date;import lombok.Data;import org.hi
2021-09-27 11:24:59
143
原创 java职责链模式(Chain of Responsibility Pattern)
基本介绍职责链模式, 又叫 责任链模式,为请求创建了一个接收者对象的链。请求发送者和接收者进行解耦。 职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。 这种类型的设计模式属于行为型模式职责链模式的原理类图对原理类图的说明-即(职责链模式的角色及职责Handler : 抽象的处理者, 定义了一个处理请求的接口, 同时含义另外 Handler ConcreteHandlerA, B 是具体的处理者, 处理..
2021-08-05 09:00:24
142
原创 linux部署jar引入声网libagora_rtm_sdk.so。nested exception is java.lang.UnsatisfiedLinkError: no agora_rtm_s
当我们jar项目需要用到第三方非java库,例如libagora_rtm_sdk.so,那我们要怎么引入呢?java会在System.getProperty("java.library.path")); // Java lib路径,引入.so库。寻找.so文件要放入的位置,然后把库放入位置在linux中寻找libagora_rtm_sdk.so文件放入的位置,当我们不知道放到哪里的时候,利用System.getProperty("java.library.path"));就会打印出Java li
2021-07-01 17:32:39
642
原创 mysql应许外部链接
1. SQL Error (1130): Host ‘192.168.1.88’ is not allowed to connect to this MySQL server连接的用户没有远程连接的权限,只能在本机(localhost)登录USE mysql#需更改 mysql 数据库里的 user表里的 host项把localhost改称%UPDATE USER SET HOST = '%' WHERE USER ='root';FLUSH PRIVILEGES;...
2021-04-30 10:50:46
114
原创 redis设置应许远程连接
1先停止redis服务2.进入到redis安装目录下,修改这两个配置文件#修改三个地方#1.注释2.保护模式,设置为no3.设置密码#注意事项#参数前面不能有空格
2021-04-23 17:24:17
153
原创 重装了系统,怎么重启已有的mysql
重装系统后,找到以前安装mysql的目录以管理员打开cmd窗口,进入到bin下面的目录PS D:\develop\MySQL\MySQL Server 5.7\bin> .\mysqld --install mysql --defaults-file="my.ini"Service successfully installed.
2021-01-19 14:37:32
144
原创 @ControllerAdvice 配合 @ExceptionHandler 实现自定义全局异常处理
对于@ControllerAdvice,结合@ExceptionHandler用于全局异常的处理。@ExceptionHandler的作用主要在于声明一个或多个类型的异常,当符合条件的Controller抛出这些异常之后将会对这些异常进行捕获,然后按照其标注的方法的逻辑进行处理,从而改变返回的视图信息。1.ExceptionEnum异常枚举信息分类,状态码等。package com.tenq.exception;import lombok.Getter;/** */@Getter.
2020-12-09 13:59:05
594
原创 自己封装一个接口返回对象
调用接口返回数据给前端的对象1.比如添加成功返回2.比如查询成功还需要返回一个对象3.比如查询成功需要返回一个分页对象接口返回总共4个数据。Object为返回的数据 private boolean flag;//是否成功 private Integer code;//返回码 private String message;//返回信息 private Object object;//返回数据1.封装接口返回对象;package co.
2020-12-09 10:31:22
969
原创 雪花算法分布式id工具类
package util;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.NetworkInterface;/** * <p>名称:IdWorker.java</p> * <p>描述:分布式自增长ID</p> * <pre> * Twitter的 Snowflake JAVA实现方案 *.
2020-12-07 13:54:21
261
原创 docker的图形化工具-Portainer
1. 查看portainer[root@localhost ~]# docker search portainer2.选择下载dockerpull portainer/portainer3. 启动dockerui容器docker volume create portainer_datadocker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/do.
2020-12-04 16:08:42
124
原创 使用cn.hutool.http请求第三方数据
一:* 第三方授权* 得到第三方token和Expires(过期时间)说明:请求第三方数据时,需要授权。第三方会给到appid和secret,请求携带appid和secret获取一个token和expires,又了token就又了操作第三方数据的权限。每次操作第三方数据时就需要携带token。maven坐标 <dependency> <groupId>cn.hutool</groupId> &
2020-12-01 17:14:56
7083
原创 大哥了解一下Lambda表达式
1.什么是Lambda表达式?Lambda表达式是JDK1.8开始之后的新技术,是一种代码的新语法。是一种特殊写法,“核心目的是为了简化匿名内部类的代码写法”。2.Lambda表达式的格式:(匿名内部类被重写方法的形参列表) -> {被重写方法的方法体代码。}-> 就是一个新语法,没有实际含义,但是不能省略!3.Lambda表达式简化匿名内部类的前提:Lambda表达式并不是能简化所有匿名内部类代码的写法。Lambda表达式只能简化函数式接口的匿...
2020-09-28 00:41:28
8061
原创 ThreadPoolTaskScheduler 调度了延迟任务成功,在延迟时间内怎么取消呢?
ThreadPoolTaskScheduler配置线程池import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;@Configurationpublic class TaskSche.
2020-09-26 00:48:11
10821
原创 ThreadPoolTaskScheduler 定时延时任务
异步的延迟调度任务,如我要调度一个任务,但我调度这个任务需要延迟一定时间才会执行。下面请看表演配置ThreadPoolTaskSchedulerimport org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.ThreadPoolTaskSc.
2020-09-23 01:40:24
11544
原创 Spring Task定时任务的快速入门
Spring Task:Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多@Scheduled注解在方法上定时使用,该注解标记的方法没有参数,也没有返回值。即使写了返回值,也会被忽略。@EnableScheduling 注解启动spring定时任务的能力,通常用在配置类上面该注解会使Spring 容器中所有bean中的@Scheduled注解起作用开始表演------------------------------.
2020-09-22 00:58:56
8733
原创 redis事件通知(notify-keyspace-events Ex)
Keyspace 通知使客户端可以通过订阅频道来接收那些以某种方式改动了 Redis 数据集的事件(触发某些事件后可以向指定的频道发送通知),该功能需Redis 版本大于 2.8。问题:设置了生存时间的Key,在过期时能不能有所提示? 如果能对过期key一个监听,如何对过期key进行一个回调处理?Key过期事件的Redis配置notify-keyspace-events Exnotify-keyspace-events 的参数为 “Ex”。x 代表了过期事件ok 重启re..
2020-09-16 00:12:29
34496
7
原创 spring获取配置文件的信息@Value && @@ConfigurationProperties(prefix=“hel“)
@Value方式yml配置文件ly: name: xiaoming password: 123456获取配置文件的class,NameProperties .classpackage com.example.config;import lombok.Data;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotatio...
2020-09-14 01:16:52
8800
原创 RedisTemplate做队列,行进先出
@Test public void contextLoads() { redisTemplate.opsForList().leftPush("errorSchedule","v1"); redisTemplate.opsForList().leftPush("errorSchedule","v2"); redisTemplate.opsForList().leftPush("errorSchedule","v3"); Objec...
2020-09-04 14:20:41
10137
原创 docker-compose安装
用pip安装docker-compose,pip可以自动对应版本.安装pipyum -y install epel-releaseyum -y install python-pippip --version安装docker-composepip install docker-compose 查看版本docker-compose version
2020-08-08 23:58:58
128
转载 什么是 Redis 的雪崩、穿透和击穿?Redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 Redis 的穿透?
缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是缓存雪崩。 大约在 3 年前,国内比较知名的一个互联网公司,曾因为缓存事故,导致雪崩,后台系统全部崩溃,事故从当天下午持续到晚上凌晨 3~4 点,公司
2020-08-08 18:08:22
205
原创 docker配置redis哨兵模式
主从配置https://blog.csdn.net/Ykprint/article/details/107844440?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159678672419724845030181%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159678672419724845030181&am
2020-08-07 20:36:52
274
原创 利用docker搭建redis主从复制
我们已经在上篇搭建好了3个redis机器了https://mp.csdn.net/console/editor/html/107859500外网客户点连接上了3台。1.利用info replication命令查看主从信息,发现每一个机器都是master我们要怎么才能搭建主从呢?2.我们要在从节点配置文件修改# replicaof <masterip> <masterport> 改为 replicaof 120.79.42.28 637...
2020-08-07 14:30:31
229
原创 用docker搭建多台redis,用redis.conf启动和aop文件挂载启动与日志挂载
1.在/目录下创建了/server/redis,在这目录中有data目录和不同redis的redis.conf配置文件。2.在这个目录下创建了data用于日志挂载和aof等持久化文件挂载文件3.修改redis79.conf配置文件,其他配置文件改一下数字。 端口号为什么不要改? docker启动时候,我们自己配置端口号映射了。如果配置文件redisxxx.conf里修改了端口号,那么外网客户段连接不上。redis79.confdbfilename dum...
2020-08-07 12:22:56
426
转载 docker安装redis和配置文件目录挂载和配置文件启动
1. 问题重现创建容器2. 解读参数-d: 后台运行容器,并返回容器ID;-i: 以交互模式运行容器,通常与 -t 同时使用;-p: 端口映射,格式为:主机(宿主)端口:容器端口-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;--ip: 为容器制定一个固定的ip--net: 指定网络模式3. 进入容器查看redis.conf文件发现是并没有redis.conf文件的,那么这个时候就是新手踩坑阶段了,因为没有系统的学习docker所以会花费很多时间4.
2020-08-06 18:17:54
4260
原创 谈一下redis主从复制吧
redis主从复制redis主从复制简介主从复制简介单机redis的风险与问题- 单机故障- 容量瓶颈- 结论多台服务器连接方案(主从复制的结构)- 数据提供方:master- 接收数据方:slave- 解决问题- 工作主从复制的作用- 读写分离:- 负载均衡:- 故障恢复:- 数据冗余:- 高可用的基础:合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释
2020-08-05 16:50:04
125
原创 docker安装nginx服务的文件拷贝和目录挂载
将nginx容器中的nginx.conf拷贝到/server/nginx/conf目录中:docker cp mynginx:/etc/nginx/nginx.conf /server/nginx/conf/docker cp mynginx:/etc/nginx/conf.d /server/nginx/conf/docker安装nginx配置文件按目录挂载:docker run -di --name=mynginx -p 9001:80 -v /server/nginx/www.
2020-07-25 13:26:52
726
原创 springBoot测试类
package com.example.mapper.testDemo;import com.example.mapper.UserMapper;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.junit4.SpringRunner.
2020-07-11 14:55:58
245
原创 spring @Bean注解放到方法上的两个特性。
spring @Bean注解放到方法上的两个特性。1自动执行当前方法,将方法返回值对象放到ioc容器中。2.方法中有参数,会在ioc中寻找同类型的参数注入到方法的参数中。
2020-07-04 21:41:13
1650
1
原创 BigDecimal的精确运算
*float和double类型,执行二进制浮点运算,数值范围上精确的近似计算,没有完全精确的结果,商业计算往往要求结果精确,这时候使BigDecimal。 *使用BigDecimal做处理,数据源是double类型要转化为Double.toString(),然后使用String类型的构造器来进行计算 。1.使用folat或者double计算,会丢失精度 System.out.println(0.2 + 0.1); System.out.println(0...
2020-06-29 10:41:43
5092
原创 swagger的用法
1.引入依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version></dependency><dependency> <groupId>io.springfox</g.
2020-06-29 00:56:49
154
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人