java常用小功能
文章平均质量分 54
。。
厄尔尼诺的夏天
热爱各有不同,青年本该如此,每一代逐日移山的青年,都有自己奋不顾身的热爱,每一份炽烈的热爱,都值得被用心对待
展开
-
MapStruct使用
MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类。您要做的就是定义一个映射器接口,该接口声明任何必需的映射方法。在编译期间,MapStruct将生成此接口的实现。此实现使用简单的Java方法调用在源对象和目标对象之间进行映射,即没有反射或类似内容。与手动编写映射代码相比,MapStruct通过生成繁琐且易于出错的代码来节省时间。遵循配置方法上的约定,MapStruct使用合理的默认值,但在配置或实现特殊行为时不加理会。原创 2023-02-04 23:09:49 · 670 阅读 · 0 评论 -
Spring Data JPA动态SQL及自定义Repository
从 JpaRepository 开始的子类,都是 Spring Data 项目对 JPA 实现的封装与扩展。JpaRepository 本身继承 PagingAndSortingRepository 接口,是针对 JPA 技术的接口,提供 flush()、saveAndFlush()、deleteInBatch()、deleteAllInBatch() 等方法。我们来看一下 UML 来对 JpaRespository 有个整体的认识。转载 2023-02-02 23:01:56 · 3965 阅读 · 0 评论 -
使用反射调用父类,超父类中方法
/可以调用类中的所有方法(不包括父类中继承的方法)Method method=clazz.getMethod(name);//可以调用类中有访问权限的方法(包括父类中继承的方法)返回描述此 Method 的字符串,包括类型参数。1.创建一个Person类,写几个方法。返回描述此 Method 的字符串。2.使用反射调用私有方法。原创 2023-01-31 21:19:13 · 532 阅读 · 0 评论 -
手动触发参数上枚举校验
【代码】手动触发参数上枚举校验。原创 2023-01-30 20:49:09 · 374 阅读 · 0 评论 -
java异步功能
异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过异步实现的场景。线程ThreadFuture异步框架CompletableFutureSpring注解@AsyncSpring ApplicationEvent事件消息队列第三方异步框架,比如Hutool的ThreadUtilGuava异步。转载 2023-01-27 22:35:18 · 708 阅读 · 0 评论 -
自定义注解校验枚举值
如果状态是0,1,3 则可以用不连续数字自定义注解校验// 元注解表示该注解可以用在的地方,此定义注解可以用在属性上// 元注解被它所注解的注解保留多久String message() default "类型不匹配";Class原创 2023-01-08 11:03:45 · 1383 阅读 · 0 评论 -
java 校验图片的大小,和比例尺寸
一、file文件校验像素,比例,大小import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException; import javax.imageio.ImageIO; public class CheckImagesFormatUtil { /** * 图片的像素判断 * @param file 文件 * @param imageWidth 图片宽度 * @param ima原创 2021-12-14 19:32:51 · 2788 阅读 · 0 评论 -
添加一条新数据并返回此数据的ID(主键)
解决方案:在编写Mapper时,加入以下配置Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。插入返回的主键id是映射回原实体类中的!所以在Service层取出id并返回链接: 原文....转载 2021-11-18 12:47:04 · 2384 阅读 · 3 评论 -
定时任务@Scheduled(cron = “* * * * * *“) cron表达式
整体规则cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} Cron表达式范例: */5 * * * * ? :每隔5秒执行一次0 */1 * * * ? :每隔1分钟执行一次0 0 23 * * ? :每天23点执行一次0 0 1 * * ? :每天凌晨1点执行一次:0 0 1 1 * ? :每月1号凌晨1点执行一次0 0 23 L * ? : 每月最后一天23点执行一次0 0 1 ? * L :每周星期天凌晨1点实行一次0 26,原创 2021-12-30 16:46:42 · 2041 阅读 · 0 评论 -
csdn字体颜色,用于复制
csdn字体颜色.转载 2022-01-12 15:26:05 · 114 阅读 · 0 评论 -
压缩图片生成缩略图
压缩图片生成缩略图package com.util;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;import com.sun.原创 2021-12-15 16:38:22 · 224 阅读 · 0 评论 -
dom4j读取xml
原创 2021-12-15 11:10:13 · 3212 阅读 · 0 评论 -
springBoot监听器ApplicationEventPublisherAware应用
好处监听器可以使核心业务与子业务进行解耦,也方便后期的业务的扩展。如新用户注册之后,发送邮件或短信,此时可以在保存用户之后,发布一个新用户的注册成功事件,通过监听该事件来实现发送邮件或短信的功能。后期新增一个对新用户进行xxx功能,此时可以新写一个监听注册成功事件的监听器,来处理新的业务逻辑,而不需要修改之前的注册逻辑。代码实体类package com.erp.payroll.evenlistener;/** * @author guang * @version V1.0 * @Packa原创 2021-12-01 10:34:19 · 1693 阅读 · 0 评论 -
post传递url调用爬虫
post传递url调用爬虫private void executePost(CommodityDetailsVo commodityDetailsVo) { CloseableHttpClient httpClient = HttpClients.createDefault(); Map<String, Object> paramMap = new HashMap<>(); paramMap.put("member_id", comm原创 2021-08-13 12:47:03 · 117 阅读 · 0 评论 -
CAS+失败重试方式实现数据库的原子性更新
在数据库修改单条数据时,常用的方式是select for update的悲观锁机制,如果锁竞争比较大,没有获得锁的操作会阻塞。使用CAS乐观锁的方式,可以大大提高并发性。例如,在分布式服务中,多个用户并发下单操作前会先扣减库存时,网上盗图,服务1,服务2和服务3为不同机器上的库存服务。库存扣减操作流程如下:使用cas方式的乐观锁,当库存还剩3个,3个用户同时下单,服务同时扣减库存,可以并发地扣减成功,提高了并发性。如果库存还剩1个,3个用户同时下单,同时扣减库存,这时只有1个用户会操作成功,其余2个会转载 2021-11-15 15:17:52 · 406 阅读 · 0 评论 -
少量枚举类自定义注解校验参数
自定义注解前言一、枚举校验二、连续数字状态校验三、不连续数字自定义注解校验注意前言传参时候总会遇到各式各样的传参,有些状态传参,0或1,有些不连续的数值传参像1,2, 5等,本文主要记录这两种参数校验的解决方式一、枚举校验枚举校验一般是用在逻辑之中进行的参数校验private void checkStatus(Integer imgStatus) { if (ObjectUtil.isEmpty(BankBannerEnums.STATUS.findByCode(imgSta原创 2021-10-22 14:31:27 · 210 阅读 · 0 评论 -
IService和他的多个ServiceImpl
记录简单的接口和他的多个实现类的准确调用IService和他的多个ServiceImpl先上接口代码public interface IWorkFlowHandler<REQ1, VO1, REQ2, REQ3, REQ4, REQ5, REQ6, REQ7, REQ8, VO8, REQ9> { /** * 分页列表 * @param req1 * @return */ IPage<VO1> listPage(REQ原创 2021-10-29 14:24:01 · 1773 阅读 · 0 评论 -
select的for update
select的for updateselect ...... for update查询校验select … for update查询select查询是不加锁的,select…for update是会加锁的,而且是悲观锁,但是在不同查询条件时候加的锁的类型(行锁,表锁)是不同的。select * from t_user where id = 1 for update;在where 后面查询条件是主键索引,唯一索引时候是行锁查询条件是普通字段时候加的是表锁校验**首先:**关闭自动提交,通过s原创 2021-11-07 01:23:48 · 10876 阅读 · 2 评论 -
idea快捷键技巧
Idea使用技巧随着IDEA的大热,越来越多的人想要学习Idea的使用,但是idea和eclipse完全不同的快捷键和操作方式使得大家的学习成本非常高昂,虽然idea提供了eclipse的快捷键模式,但是兼容度并不完美,还有部分按键的混乱让人使用起来非常的不爽。如果你也有以上烦恼,那么恭喜你找到了捷径,本文提供了让你快速上手idea的机会。本文和市面上大多的博文的不同之处在于,本文并没有随意的罗列idea那庞大的快捷键清单。而是选择了工作中你常用的,并且使用频率在100%、80%、60%、30%等非常高频原创 2021-10-10 22:46:27 · 1190 阅读 · 0 评论 -
Java项目启动时执行指定方法的几种方式
很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等。这里给出几种解决方案供大家参考。一、使用@PostConstruct注解这个注解呢,可以在Spring加载这个类的时候执行一次。来看一下下方代码。@Componentpublic class Test { public Test(){ System.out.println("我最先执行"); } /**原创 2021-11-30 19:46:16 · 2352 阅读 · 0 评论 -
mybatis-plus-mybatis-mate 数据权限
0、简介mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。1、主要功能字典绑定字段加密数据脱敏表结构动态维护数据审计记录数据范围(数据权限)数据库分库分表、动态据源、读写分离、数据库健康检查自动切换。2、使用2.1 依赖导入Spring Boot 引入自动依赖注解包<dependency> <groupId>原创 2021-11-07 01:52:06 · 554 阅读 · 0 评论 -
@mapper导包错误
项目场景:启动项目时候出错问题描述:提示报错信息Can't generate mapping method with primitive return type.Can't generate mapping method from iterable type to non-iterable type.Can't generate mapping method from non-iterable type to iterable type.Can't generate mapping meth原创 2021-10-27 17:22:32 · 1019 阅读 · 0 评论 -
batchUpdate sql异常
项目场景:batchUpdate,书写 sql时候出现sql异常问题描述:batchUpdate,书写 sql时候出现sql异常,之前公司一直使用,没有问题<update id="updateAllAvailable"> <foreach collection="skuOptionList" item="item" index="index" open="" close="" separator=";"> update t_xxx <s原创 2021-10-27 17:28:15 · 405 阅读 · 0 评论 -
Integer 在-128-127之间发生了什么?
Integer 在-128-127之间发生了什么?Integer的.equals和==思考最初的问题静态内部类IntegerCache初始化缓存的过程如下Integer的.equals和==这是一个基础的问题,掌握一些java的人,或许能讲出一些为什么。但是再深究一下才会发现这究竟是为什么一段普通的代码public class Demo { public static void main(String[] args) { Integer i1 = 100;原创 2021-10-28 21:02:12 · 362 阅读 · 0 评论 -
关闭占用端口号
关闭端口号1. netstat -ano | findstr 80702. tasklist|findstr “73784”3. taskkill /f /t /im msedge.exe原创 2021-11-03 09:04:26 · 177 阅读 · 0 评论 -
定时任务 @Scheduled(cron = “ “)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档定时任务一、定时任务 @Scheduled(cron = " ")二、其他定时任务一、定时任务 @Scheduled(cron = " ")简单的定时任务,在方法上加入注解就可以实现定时,定时规则如下按顺序依次为秒(0~59)分钟(0~59)小时(0~23)天(月)(0~31,但是你需要考虑你月的天数)月(0~11)天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)7.年份(原创 2021-08-03 22:13:40 · 1796 阅读 · 0 评论 -
java8 stream 的项目应用
提示:项目中常用lambda的表达式java8 stream 的项目应用案例案例// 转成set时直接用toSet,或者用.distinct()做去重// 把实体类的集合抽出某属性转成listList<Integer> collect = banners.stream().map(BankBanner::getPictureSort).collect(Collectors.toList());// 把实体类的集合转map//返回 对象集合以类属性一升序排序list.s原创 2021-10-22 17:25:27 · 264 阅读 · 0 评论 -
解决try-catch (持续学习更新.......)
简洁代码格式,持续学习更新解决try-catch 一、解决controller层过多的try-catch一、解决controller层过多的try-catch1.使用注解@ControllerAdvice@ExceptionHandler@ControllerAdvicepublic class ExceptionConfigController { // 专门用来捕获和处理Controller层的空指针异常 @ExceptionHandler(NullPointerExce原创 2021-10-27 16:02:19 · 160 阅读 · 0 评论 -
Optional的使用
Optional的使用前言创建Optional实例访问 Optional 对象的值返回默认值orElse() 和 orElseGet() 的不同之处返回异常转换值过滤值Optional 类的链式方法java9 增强Optional 应该怎样用?总结前言为什么optional会出现?从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本转载 2021-11-10 12:39:59 · 460 阅读 · 0 评论