自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 【从部署服务器到安装autodock vina】

回到Downloads文件夹,将下载的anaconda移动到software文件夹中(鼠标右键即可 和windows一样)弹出以上界面则表示pymol安装成功,后续使用pymol均是先切换至pymol环境,再输入pymol!等待一段时间安装完成,紧接着输入以下代码验证pymol安装是否成功。切记,一定要在software文件夹中打开终端,界面如图所示。图形化界面安装好之后,服务器界面应该是这样,不再是命令行了。输入 yes,再按下enter确认,等待安装完毕。紧接着激活环境,输入以下代码。

2024-03-06 14:53:21 463

原创 python3.8如何安装pyhanlp

3.下载后解压, 将解压后的文件复制到你的hanlp所在目录, 如果是用annaconda安装的, 那么文件路径在 C:\Users\user.conda\envs\py38\Lib\site-packages\pyhanlp\static。2.装完JDK之后需要安装 visual_cpp_build_tools_2015_update_3_x64, 推荐在CSDN上找资源, 官网下载速度太慢了。3.安装完visual之后安装 JPype1-1.4.0-cp38-cp38-win_amd64。

2023-12-12 21:38:57 299

原创 tensorflow Windows安装说明

Tensorflow 2.10是最后一个在本地windows上支持GPU的版本。从2.11版本开始,需要在windows WLS2(适用于 Linux 的 Windows 子系统)上安装才能使用GPU。在anaconda shell控制台中,切换至虚拟环境, 安装TensorFlow。无镜像pip安装 速度超慢 但是会自动安装兼容当前python版本的最新版本。这是用的豆瓣镜像,要装不同版本只需修改版本号。

2023-09-19 19:11:34 298

原创 动态规划问题

比如一些求最值的场景,如最长递增子序列、最小编辑距离、背包问题、凑零钱问题等等,都是动态规划的经典应用场景。如果一个问题,可以把所有可能的答案穷举出来,并且穷举出来后,发现存在重叠子问题,就可以考虑使用动态规划。动态规划的核心思想就是拆分子问题,记住过往,减少重复计算。并且动态规划一般都是自底向上的。

2023-09-16 09:52:53 392

原创 用Java代码实现N皇后算法

【代码】用Java代码实现N皇后算法。

2023-09-15 19:59:08 147

原创 java接入钉钉告警机器人

【代码】java接入钉钉告警机器人。

2023-05-06 16:13:07 405

原创 Redis之BitSet

BitSet是Redis中提供的一种二进制数组的数据结构, 利用这种特殊的数据结构可以实现一些特定的场景.BitSet的数据长这样: [01010010], 存放的是boolean, 且长度为8的倍数 也就是byte的长度. 且只存true, false会自动填充.Redisson提供的RBitSet还额外提供了 与 或 非 等api.

2023-03-16 19:10:34 942

原创 自定义注解校验请求参数

有这样的场景, 前端传参中会包含 “开始时间”,“结束时间”,“最小价格”,"最大价格"等字段, 前端通常会有校验, 比如最大价格不能小于最小价格, 后端也需要做校验, 但是会和业务代码耦合在一起, 那么有没有办法可以实现参数校验和业务解耦呢?1.在controller的方法上加 @FieldCompareMethod注解。默认可以根据字段的名称来比较, 比如 xxxMax, xxxMin。也可以加参数, 指定哪两个字段来比较。2.在需要校验的字段上加注解。

2023-03-03 14:29:24 209

原创 自定义注解之解析各种格式时间

这里是利用反射,获取注解里的属性. 注意, 获取field时, 如果字段起了别名, 是会获取不到的!

2022-12-09 18:37:15 241

原创 RabbitMQ 实现延时队列

队列ttl过期时间设置15分钟, 不设置消费者. 15分钟过后, 消息转发至死信队列.用户在商城下单成功并点击去支付后在指定时间未支付时自动失效。2.利用插件实现延时。

2022-11-30 18:15:04 781

原创 @Validated注解分组的使用

相信大家在实际工作中, 一定会遇到这样的场景. request的某个参数, 在新增时不需要前端传, 但是编辑时需要前端传, 其余字段也都是一模一样的, 没办法, 还是得建两个request. 用分组校验就是为了解决这个问题的.@Validated 是在@Valid 注解基础之上,提供了更丰富的功能, 其中之一就是分组校验. 那么什么是分组校验呢?以此类推, 可以定义不同的分组, 去匹配不通的场景, 就可以减少request的创建.

2022-11-14 13:54:24 2810 1

原创 自定义注解之数组与逗号拼接字符串自动转化

这样做是可以,但是显得很不优雅。看过前几篇自定义注解文章的同学, 应该能感受到@JsonSerialize 注解的强大, 本篇将介绍另一个对应的注解@JsonDeserializer的强大功能. 这俩注解可以配合着使用, 让你的代码在序列化或反序列化时, 无比的优雅.由此场景可以推广, 但凡前端想要的数据模型和后端定义的不一致, 都可以在序列化与反序列化时, 用自定义序列化类做处理, 这样可以简化业务代码.解析入参: 无论前端传 [“0,1,2”] / “0,1,2” 都会转为 “0,1,2”

2022-11-08 17:02:50 563

原创 如何监听Redis过期缓存

重写的onMessage()方法, 入参 message 是过期的key, 但是有一点需要注意, 任何过期的key, 都会被监听器捕捉到.Redis提供了Listener类KeyExpirationEventMessageListener, 重写其方法即可。只要能拿到key, 就可以针对不同的key, 做不同的处理.

2022-10-22 09:42:43 821

原创 巧妙利用枚举类消除if,else

在处理复杂业务时, 会遇到针对不同场景做不同处理的情况, 难免会产生大量的if, else if 的代码, 不仅会影响美观, 太多的if 也会影响阅读性. 在这里提供两种依靠枚举类去消除if代码的写法供各位参考.这里是将函数放在接口中, 所有的小枚举去实现对应的具体方法, 相较于将函数式接口用作属性, 更便于理解, 但是代码量会多一丢丢. 两种方法皆可.这里是用函数式接口做属性, 再提供一个接口, 让调用方可以通过映射, 获取对应的处理函数.贴一下, 大家意会即可, 相比这种代码也见怪不怪了!

2022-10-20 14:26:43 301

原创 记一次乐观锁并发场景下遇到的问题

处于 READ COMMITTED 级别的事务可以看到其他事务对数据的修改。除了容易产生虚幻的读操作和不能重复的读操作外,处于这个隔离级的事务可以读到其他事务还没有提交的数据,如果这个事务使用其他事务不提交的变化作为计算的基础,然后那些未提交的变化被它们的父事务撤销,这就导致了大量的数据变化。mysql默认的隔离级别是REPEATABLE READ, 所以并发场景, 开启事务之后, 后续请求是读不到第一次已经更新的版本号的, 所以将隔离级别降低为READ COMMITTED, 问题就得到了解决.

2022-10-19 18:10:23 447

转载 自定义注解实现数据脱敏

实现方案: 利用jackson提供的JsonSerializer 在返回response对象序列化时 处理数据.2.定义序列化类, 继承jackson的JsonSerializer, 具体的序列化过程, 由此类完成。

2022-10-10 11:58:17 228

原创 利用Redisson的Zset 实现历史搜索记录

ScoreSortedSet 是redisson提供的实现了Zset的数据类型, 相较于set, 在添加元素进集的时候, 需要给定一个score, score决定了该元素的在集里的顺序.首先介绍下,redis 有五大数据结构, String , List , Hash , Zset (有序集) , Set (无序)2.在添加时, 先remove该元素, 否则add失败. 这样即使之前add过了, 重新add时, 也会重置score.利用Zset的有序性 , 无重复 的特性, 正好适用于搜索记录等场景.

2022-09-27 21:50:56 1329

原创 MongoDB 踩过的坑之大小写问题

如果数据写入mongoDB的时候, 没办法明确的限制大小写, 那么该字段用作查询条件时, 就可能因为大小写不匹配, 而导致查不出数据. 此时就需要查询时忽略大小写.该方案适用于 身份证号等 字母比较明确的场景。该方案比较通用, 但是注意: 正则匹配的。方案2: 用 or 做处理。方案1: 用正则匹配。

2022-09-27 17:11:38 885

原创 将实体处理成平铺

【代码】将实体处理成平铺。

2022-09-17 17:27:50 159

原创 自定义注解之BigDecimal 保留固定小数

1.setScale()方法可以自定义, 前面的数字是保留的位数, 后面的是取舍的规则, 这里是四舍五入。jackson提供了相关的注解, 只需要自己定义一个具体的序列化类即可。2.else 里是 异常数据的处理策略, 这里是为空则返回 0.00。

2022-09-15 15:54:27 1181

原创 Java基于MongoDB Template封装Dao层

mongoDB Template 提供了许多直接操作Mongo的方法, 在此基础上在进行一层封装, 用起来更顺手。使用此封装类, 对实体有要求, 请自行修改。

2022-08-15 15:47:42 852

原创 MongoDB Template update的小坑

mongoTemplate.updateFirst() 这个方法, 如果传入的实体有字段没有赋值, update之后, mongo里值会置为null.大部分情况下为null的数据并不会产生什么影响,但是总归是不太好的, 所以推荐mongo的update使用下面这种方式。先根据objectId将原数据查出来, 再将传入的实体中变化的值覆盖, 这样不会产生为null的数据。1.先说一下坑之所在。...

2022-08-10 20:08:12 1299

原创 Mysql之排序分组后取第一条 慢SQL分析

乍一看没什么问题,但是看执行计划,会发现最外面一层的select没有走索引,而是全表扫描,这样随着数据量的增大,必将成为一个慢sql。mysql5.7之后,groupby和orderby后的字段不一样,orderby不生效。需要将上面的sql拆成两个sql,虽然会多链接一次数据库,但是可以避免慢sql。解决办法在orderby后加limit破坏mysql的自动优化条件。需要先根据创建时间倒排,再根据业务id分组,取每个分组的第一条数据。......

2022-07-21 20:44:58 1790

原创 自定义注解之枚举类自动映射

代码】自定义注解之枚举类自动映射。

2022-07-15 10:40:05 529 1

原创 自定义注解之枚举值校验

该注解本质还是遍历枚举类,判断是否包含该值

2022-07-06 19:13:40 433

原创 自定义注解之打印日志

自定义注解之打印日志

2022-06-30 14:01:54 248

原创 MQ如何保证消息可靠投递

producer : 发送消息给Broker, 服务器将消息写入磁盘, 并发送确认请求后, 才算消息发送成功consumer : 定时轮询Broker的消息, 抽取消息, 并返回确认请求Broker : 接收生产者发送的消息, 消息本地存储; 消费者抽取消息返回确认请求后, 删除该消息注意点:生产消息, 消费消息 都是异步的...

2022-06-13 20:29:00 822

原创 mongoDB聚合函数

原生写法db.deviceDataCollection.aggregate([ { $match: { "commonDeviceData": { "$ne": null, "$exists": true }, "commonDeviceData.isAlarm": "1", "deviceId": "863204050.

2022-05-27 16:59:58 646

原创 分布式事务之XA方案

分布式事务XA学习视频什么是XAXA方案是X/OPEN组织定义的一种分布式事务处理标准, 在阿里巴巴seata定义的分布式事务框架内, 利用事务资源对XA协议的支持(即利用数据库支持XA协议 比如关系型数据库mysql,oracle等等) , 以XA协议的机制来管理事务分支的一种两段式方案。XA的流程三个角色(TM, RM, TC)TM : 事务管理器, 即开启全局事务的角色, 用来划定分布式事务的边界和范围。RM : 资源管理器, 即针对数据库进行具体操作的角色。TC : 全局事务协调者

2022-05-19 17:58:25 1986

原创 Java8 Stream 使用技巧

排序list.stream() .sorted(Comparator.comparing(x -> MapUtils.getString((Map) x, "order")) //排序字段 .reversed()) //反转 .collect(Collectors.toList());List 分组Map<String, List<Map<String, Object>>&gt.

2022-05-12 13:14:10 340

原创 Intellij热部署插件JRebel

安装第一步:安装插件第二步:在线GUID地址:在线生成GUID网址:https://www.guidgen.com/服务器地址:https://jrebel.qekang.com/GUID第三步:打开jrebel 如下所示面板,选择Connect to online licensing service安装成功之后就可以通过JRebel启动项目。这样修改完Java代码后,就可以通过快捷键 Ctrl+shift+F9 而不再需要重启站点这样繁琐浪费时间的操作了。相关设置设置成离线工作模式

2021-12-27 14:01:36 117

原创 如何获取阿里云上的图片压缩后再上传

本文用到了一个谷歌的图片处理插件 thumbnailator <!-- 图片处理 --> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version>

2021-04-26 09:47:55 312

原创 idea 插件

           常用篇  1.GenerateAllSetter一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便,在做项目时,每层都有各自的实体对象需要相互转换,但是考虑BeanUtil.copyProperties()等这些工具的弊端,有些地方就需要手动的赋值时,有这个插件就会很方便,创建完对象后在变量名上面按Alt+Enter就会出来 generate all setter选项。2.GsonFormat一键根据json文本生成java类 非....

2020-12-24 17:11:54 556 1

原创 上传MultipartFile同时添加水印(图片,文字)

适用于将图片上传至服务器时添加图片水印或者文字水印工具类import org.springframework.mock.web.MockMultipartFile;import org.springframework.web.multipart.MultipartFile;import javax.imageio.ImageIO;import javax.imageio.stream.ImageOutputStream;import java.awt.*;import java.a..

2020-10-10 08:40:01 1275 1

原创 给本地图片添加水印(图片,文字)

适用于给本地图片添加水印,需要知道图片和水印图片的绝对路径工具类import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;public class ImageUtil { public enum positionT.

2020-07-01 14:29:26 383

原创 将中文字符串转为拼音

Maven依赖<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version></dependency>拼音工具类import lombok.extern.slf4j.Slf4j;import net.sourceforge.pin

2020-06-29 21:01:16 926 2

原创 jackson objectMapper json字符串、对象bean、map、数组list互相转换常用的方法

- 对象转json字符串User user=new User();String userJson=mapper.writeValueAsString(user);- Map转json字符串Map map=new HashMap(); String json=mapper.writeValueAsString(map);- 数组list转json字符串Student[] stuArr = {student1, student2}; String jsonfromArr = mappe

2020-06-19 10:15:45 10684 2

原创 删除U深度内置软件

需要下载一个软件Fbinst Tool(万能U盘制作工具)。链接:http://pan.baidu.com/s/1mim9Zxm 密码:7poo插入U盘,直接打开Fbinst Tool。首先是U深度打开/IUSD/IMGS。删除里面的Install.IMG文件。Install.IMG就是U深度捆绑软件。SUPPORT.IMG是老毛桃的捆绑软件。大白菜/IDBC/IMGS里的impor...

2020-04-29 15:20:04 2441

原创 ARRIS路由器梅林系统救砖

准备工作:TFTP救砖工具下载链接:https://pan.baidu.com/s/1ujNg7kEbpMvXjorPridGsg 提取码:ilfq梅林系统固件下载地址: https://share.weiyun.com/58sVzea1 电脑固件ip地址:把ip地址设置成:192.168.1.2,子网掩码:255.255.255.02 电脑用网线连接到路由器的LAN口上,连接四个中的任......

2020-04-24 11:18:21 8857 17

原创 梅林固件和华硕路由器通用设置上网教程

此教程适合所有华硕或梅林路由的设置,因为这类的路由器操作基本一样,根据教程说明一步步仔细操作即可1 路由器通电并连接好网线,WAN口接光猫或入户线,四个LAN口其中一个接电脑或者也可以连接路由器WIFI信号,WIFI名称:ASUS或者NETGEAR开头的信号名。2 进路由器设置页面,打开浏览器输入192.168.50.1进设置页面,账号:admin,密码:admin或者password。3......

2020-04-24 10:40:06 43001

hanlp安装后所需文件

hanlp安装后所需文件

2023-12-12

整合huTool DateUtil+LocalDateTimeUtil

整合huTool DateUtil+LocalDateTimeUtil

2022-07-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除