- 博客(265)
- 收藏
- 关注
原创 List转Map报错“Duplicate key”
可以看到我们参数仅仅是: key ,value。结果:{“1”:“小花,小草”}结果:{“1”:“小花”}示例代码 copy本地运行。
2023-04-25 11:38:51
748
原创 设计模式之策略模式
相同事情,选择不同方式实现。解决多重if判断问题策略类数量增多(每一个策略类复用性很小,如果需要增加算法,就只能新增类)所有的策略类都需要对外暴露(使用的人必须了解使用策略,这个就需要其它模式来补充,比如工厂模式、代理模式)后期维护不同策略类是非常多、定义类比较多、代码量增大。1.联合登录 QQ联合登录/微信联合登录/钉钉联合登录2.排序算法 冒泡/简单选择/堆排序等3.支付方式 支付宝/微信支付/银联支付/平安支付等 4.快递 申通、圆通、京东、德邦、顺丰等5.发送通知 短信、微信公众号模
2022-06-24 23:52:24
424
原创 rabbitmq如何避免消息不要一直堆积在服务器端
rabbitmq如何避免消息不要一直堆积在服务器端1.消费者集群消费(在使用k8s根据流量的形式实现监控 动态扩容与缩容)2.消费者批量的形式获取消息;3.生产者批量的形式投递消息;例如我们消费者实现每次批量消费5条消息,我们生产者在投递消息过程中,可以将5条msg消息直接合并成一条msg 投递到mq中,消费者订阅到该msg消息 在拆分5条小msg。以批量5条消息为例子,先放到缓存池,再开单独开线程将这5条消息合并为1条消息,再投放到 mq服务器端。消费者消费 拿到一条消息,实际上里面有5
2022-05-10 22:55:57
1133
原创 网上下载软件,macOS无法验证此App不包含恶意软件。
博主一般常用第一种:1.解决方法一:按住Control键点按应用, 然后打开,这样会把应用增加到白名单中许可执行。2.解决方法二:打开系统偏好设置>安全性与隐私>通用,这个时候有个按钮,“仍然允许”点击即可。3.解决方法三:禁用新安全检查,执行如下命令:sudo spctl --master-disable...
2022-03-08 10:45:14
9311
原创 java foreach循环抛异常
场景:foreach 循环中,每次都需要http请求,http请求会抛出异常。idea会自动提示 try…catch但是此时,是 循环中内部try…catch,catch则无法向外throw异常。初步解决:把try…catch放到整个foreach 循环外面,但是依旧存在循环内部需要try…catch解决:把try…catch放到整个循环外面,如果使用普通的for循环,自己设定索引i 进行循环,就可以成功在catch中向外抛异常...
2022-01-14 14:33:27
5356
1
原创 idea社区版本 通过配置pom文件plugin实现tomcat运行项目
<plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configu.
2022-01-14 14:28:03
499
原创 Java中List通过Lambda实现排序正序、倒序
1. 正序: 1,2,3,4,5list.stream().sorted(Comparator.comparing(Dto::getStateCode)).collect(Collectors.toList());2.降序: 5,4,3,2,1.reversed()list.stream().sorted(Comparator.comparing(Dto::getStateCode).reversed()).collect(Collectors.toList());...
2022-01-11 14:53:40
5910
1
原创 Lombok的@Builder注解大坑
1、@Data和@Builder导致无参构造丢失单独使用@Data注解,是会生成无参数构造方法。单独使用@Builder注解,发现生成了全属性的构造方法。@Data和@Builder一起用:我们发现没有了默认的构造方法。如果手动添加无参数构造方法或者用@NoArgsConstructor注解都会报错!解决:直接加上这4个注解@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class TestLombok { ...
2022-01-04 18:33:06
1230
原创 mybatis列表循环入库sql2种写法
第一种 Long insertList(@Param("list") List<Image> list); <insert id="insertList" parameterType="java.util.List"> INSERT INTO IMAGE ( ID,URL )VALUES <foreach collection="list" item="item" separator=",">
2021-12-06 15:10:34
292
原创 彻底解决Could not transfer artifact org.apache.maven.plugins问题
彻底解决Could not transfer artifact org.apache.maven.plugins问题
2021-12-01 13:02:24
1000
原创 list动态随机分组Demo
在线运行网址:https://www.bejson.com/runcode/java/import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;public class Main { public static void main(String[] args) { int group = 2; //分2组 int gr
2021-08-25 17:17:43
335
1
原创 BeanCopyUtil不能copy 涉及到继承父类的类属性 原生的BeanUtils.copyProperties可以
@Test public void test(){ u3 u3 = new u3(1,"小白",20); u2 u2 = BeanCopyUtil.conver(u3, u2.class);// u2 u2 = new u2();// BeanUtils.copyProperties(u3,u2); System.out.println(JsonUtil.toJson(u2)); } @Da..
2021-08-06 14:50:32
3928
1
原创 同一个类记录属性最大值最小值操作日志工具类
1. 需要监听类 要记录的字段名称 年龄、身高变化日志例子: 修改年龄"1-2"为"1-6";修改身高"3-4"为"7-8";@Ignore @Data @AllArgsConstructor @NoArgsConstructor class Bean { private Long id; //不需要记录变化的字段,无需添加注解 @ForUpdate @ForUpdate(fieldName = "性别") privat
2021-07-28 15:53:40
111
原创 记录同一个类字段值变化日志工具类
1.单个变量值前后工具类代码1.1 自定义注解@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface ForUpdate { String fieldName() default "";}1.2 工具方法日志示例:修改年龄"10"为"20";具体日志格式不同,小伙伴们可以自行修改builder。 /** * 获取变更内容 *
2021-07-28 15:33:49
175
原创 elk——kafka
Elk E=ElasticSeach(存储日志信息)l Logstash(搬运工)K Kibana连接到我们ElasticSeach图形化界面查询日志Elk+kafkaElk采集日志的原理:需要在每个服务器上安装Logstash(搬运工)Logstash需要配置固定读取某个日志文件Logstash将我们的日志文件格式化为json的格式输出到es中开发者使用Kibana连接到ElasticSeach 查询存储日志内容。为什么需要将日志存储在ElasticSeach 而不是mysql
2021-07-01 10:23:12
2830
原创 线程安全和锁
什么是线程安全问题多线程同时对同一个全局变量做写的操作,可能会受到其他线程的干扰,就会发生线程安全性问题。当多个线程共享同一个全局变量,做写的操作时,可能会受到其他的线程干扰,发生线程安全问题。如何解决线程安全的问题核心思想:上锁 分布式锁在同一个jvm中,多个线程需要竞争锁的资源,最终只能够有一个线程能够获取到锁,多个线程同时抢同一把锁,谁(线程)能够获取到锁,谁就可以执行到该代码,如果没有获取锁成功 中间需要经历锁的升级过程如果一致没有获取到锁则会一直阻塞等待。如果线程A获取锁成功 但
2021-05-31 10:04:36
77
原创 StringUtils.leftPad()左侧补齐
//左侧补齐 第一个参数:原始字符串,第二个参数:字符串的长度,第三个是补充的字符串 String newStr1 = StringUtils.leftPad("oldStr1", 10, "*"); System.err.println(newStr1);//***oldStr1 //获取字符串左侧指定长度的字符串,第一个参数:原字符串,第二个参数:取左侧字符串的长度 String newStr2 = StringUtils.left("ol
2021-05-06 17:36:12
656
原创 从请求头中获取 其他信息
// 从请求头中获取 其他信息 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String deviceInfor = request.getHeader("deviceInfor"); String channel = request.getHeader("channel".
2021-05-06 17:28:00
533
原创 在React中设置一个复选框“ check”属性
在React中设置一个复选框“ check”属性reactjs我在React和复选框方面遇到了一个非常烦人的问题。我正在使用的应用程序需要复选框列表,这些复选框代表保留在后端的设置。有一个选项可以将设置恢复为原始状态 。首先,我创建了一个组件,该组件具有一个类似于设置映射的对象。每个设置都有一个键和一个布尔值。因此:{ bubbles: true, gregory: false}被表示为:<input type="checkbox" value="bubbles" c
2021-04-27 11:25:39
4038
原创 lombok 下的@Builder注解用法
不必重复set对属性赋值,1行代码代替多行赋值。/** * @author lvhuiyuan * @date 2021/4/16 11:28 上午 */@Data@Builder(toBuilder = true)public class BuilderVO { private Long id; private Long userId; private String userName; private String password; private
2021-04-16 11:39:45
421
原创 mac配置多个dns傻瓜式操作
注意: 上一步 点击:好。此时wi-fi没有ip地址,不能接入互联网。注意: 此时位置显示的是刚刚命名的名称。如果不是,需要手动点击。注意:此时dns服务器下面是空的。因为是新命名的,从来没有配置过。编辑自己想命名的dns名称。此时填写ip是自己要配置的地址。
2021-04-06 16:40:05
5634
2
原创 8_real_01项目框架
简单步骤:1. 创建父项目mt-sp-parentcom.mayikt父pom<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.11.RELEASE</version> <relativePat
2021-03-11 19:26:08
284
1
原创 全局捕获异常
/** * 全局捕获异常 */@ControllerAdvice(basePackages = "com.xx.api.impl")public class GlobalExceptionHandler { @ExceptionHandler(RuntimeException.class) @ResponseBody public Map<String, Object> errorResult() { Map<String, Object> e
2021-03-11 13:54:13
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人