- 博客(14)
- 资源 (5)
- 收藏
- 关注
原创 使用stream的Collectors.toMap()方法常见的两个问题
java8开始的流式编程很大程度上简化了我们的代码,提高了开发效率。我们经常会使用到stream的Collectors.toMap()来将List转换Map,但是在使用过程中有两个小坑需要注意:1、java.lang.IllegalStateException: Duplicate key2、java.lang.NullPointerException第一个是由于在List转Map过程中Map集合的key重复导致的;第二个是由于在List转Map过程中Map集合的value有null导致
2022-03-11 17:01:01
7430
原创 Springboot配置切面@Aspect不生效问题
在使用aspectj做aop编程的时候,发现并没有执行到定义的切面类里面,代码如下:1、自定义注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface SmsRecord {}2、新建一个切面类import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.
2021-08-23 17:39:55
10364
原创 获取nacos上注册的服务机器地址
从nacos的控制面板上我们可以看到所有注册上来的服务点击详情我们可以看到这个服务集群的所有机器地址有时我们需要获取某个服务集群的所有地址做一些处理或者判断,下面介绍一下通过java代码获取的方法。/** * 注入DiscoveryClient */ @Resource private DiscoveryClient discoveryClient;/** * 获取nacos上注册的xxx实例 * * @return */ private void getServic..
2021-07-28 18:48:00
6161
1
原创 Lombok 中 @EqualsAndHashCode注解的使用
@EqualsAndHashCode注解的作用就是自动实现model类的equals方法和hashcode方法。我们在实际工作中经常会使用lombok来简化我们的开发,例如我们可以在定义的model类上添加@Data注解,从而免去手写get、set、toString、equals、hashcode等方法。先来看问题:1、定义一个基础类Car/** * 汽车 */@Datapublic class Car { /** * 颜色 */ privat
2021-07-02 15:10:09
13949
原创 IntelliJ IDEA中同一个项目启动多个服务
在日常开发或测试过程中,有时我们需要对同一个项目启动多个服务来进行一些自测。下面介绍一下如何利用IntelliJ IDEA对同一个(Springboot)项目启动多个服务。 1、首先找到并点击Edit Configurations2、点击左上角的+号,add new configuration3、选择Spring boot4、配置参数注意:端口号配置的时候要错开,不然启动的时候会报端口被占用...
2021-04-15 15:21:15
1696
原创 IntelliJ IDEA突然出现方法或者类无法自动关联解决办法
在IntelliJ IDEA使用过程中,有时会出现明明有这个类或者这个方法,项目启动也正常,但是就是无法自动关联情况(提示红色报错)。这时我们可以重启IntelliJ IDEA,如果重启还不能解决,则可以通过File --> Invalidate Caches / Restart -->Invalidate andRestart 清除缓存来解决。...
2021-03-24 16:11:19
3457
原创 Google Guava的EventBus(事件总线)基本使用
EventBus是Google.Guava提供的消息发布-订阅组件,采用的是观察者模式(生产/消费者编程模型),实现了多组件之间通信的解耦合,事件产生方和事件消费方实现解耦分离,提升了通信的简洁性。相比MQ它更加轻量,易用,但一般只用于进程内部的通信,不能像MQ一样用于分布式系统的服务与服务之间的通信。 EventBus包含3大核心部分:Event事件,Publisher事件发布者,Subscriber事件订阅者。 下面介绍一下它的使用方法:一、...
2021-03-03 23:13:27
4011
1
原创 Spring Data Jpa 动态查询Specification的基本用法
在平常的使用中,我们往往要根据前端传过来的参数(参数个数不确定)动态查询一些数据。下文就介绍一下在Spring Data Jpa中动态查询的基本用法。一、dao层的Repository继承JpaRepository例:public interface UserInfoRepository extends JpaRepository<T, Long>, JpaSpecificationExecutor<T> {}二、在需要查询的service类中注入Reposi
2021-03-01 15:24:39
2867
2
原创 MD5加密工具类(带盐值)
我们在使用MD5加密时通常会通过加盐的方式来提高安全性,下面的示例采用的是MD5+随机盐值的方式import org.apache.commons.lang.RandomStringUtils;import org.springframework.util.DigestUtils;/** * MD5加密工具类 */public class Md5Util { private static final Integer SALT_LENGTH = 6; //测试方法...
2021-02-24 21:32:19
1505
原创 RTF转HTML(<div>标签)格式的方法(java)
最近有一个将RTF格式的文件转换成HTML格式的需求,网上搜索发现相关资料比较少,能找到的一些资料也年代比较久远。经过一番摸索和测试,终于成功的将RTF转成了HTML,并且解决了烦人的中文乱码问题。但是很遗憾,目前RTF文件里面的表格和图片还无法转换(没有找到方案)。 1、首先,我们需要先借助WebCAT里面的RTF2HTML这个类,WebCAT的下载地址为:http://webcat.sourceforge.net/或者xxxxxxx。(你也可以直接参考下面的代码,不用下载...
2020-07-28 13:09:24
1268
原创 Java常见的5种线程池
在开发过程中我们常常需要使用到多线程来提高我们代码处理某些任务的效率,最基本的两种创建多线程的方式分别是继承Thread类和实现Runnable接口。但是创建线程和销毁线程的系统开销比较大,而且过多的线程会占用过多的内存等资源。在《阿里巴巴Java开发手册》中也提示我们“线程资源必须通过线程池提供,不允许在应用中自行显式创建线程”。所以我们引入了线程池。一、常见的5种线程池分别是: 1、FixedThreadPool,它的核心线程数和最大线程数是一样的,可以把它看成是固定线程数...
2020-06-23 17:44:26
4150
原创 mybatis plus新增(insert)数据获取主键id问题
在我们执行insert操作的时候,往往会需要拿到新插入数据的主键id做下一步操作。例://新增银行卡BankCard bankCard = new BankCard();bankCard.setBankCardRealName(bankCardRequest.getRealName());bankCard.setBankCardNum(bankCardRequest.getBankCardNum());bankCard.setBankName(bankCardRequest.getBank
2020-06-10 14:06:50
14015
3
原创 Windows10安装MySQL5.7步骤
1、在官网下载mysql5.7安装包下载地址:https://downloads.mysql.com/archives/community/2、解压安装包将压缩包放在你认为合适的地方解压(文件路径中最好不要有中文)例如,我放在D盘3、配置环境变量右击 此电脑/计算机,点击属性,打开高级系统设置,点击环境变量。新建系统变量:变量名:MYSQL_HOME变量值...
2020-03-24 10:08:25
337
webcat.rar
2020-07-24
阿里巴巴Java开发手册(泰山版).zip
2020-06-23
jQuery EasyUI1.4.1版API中文版
2017-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人