
开发心得
虹梦未来
Java开发者,Linux爱好者,Gopher
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【分享】windows11快捷键冲突检测工具
windows11热键冲突转载 2023-12-14 15:27:50 · 2204 阅读 · 2 评论 -
【开发心得】Java xsd文件转JavaBean
最近又要对接友商老的系统,依然采用http + xml方式的请求,客方提供了xsd,这里提供windows平台两种转换xsd文件为javaBean的方式。原创 2023-10-12 13:51:02 · 950 阅读 · 0 评论 -
【分享】mysql 一些边缘值
mysql建立索引时,数据库计算key的长度是累加所有index用到的字段的char长度,在按照下面的比例乘起来。(1)单行最大超过65535(这里不包括TEXT、BLOB),则会报此错误;(2)单个字段如果大于65535,也会报此错误。在数据库中,索引的字段设置太长了,导致不支持。转载 2023-04-20 18:31:04 · 166 阅读 · 1 评论 -
【开发心得】spring-data-mongo多数据源配置
两份配置基本一致,主要区别一个是primaryxxx,一个是secondaryxxx,同时primaryConfig中,需要对MongoProperties,MongoDatabaseFactory,MongoTemplate 增加@Primary,确保单例,同时确保application.yml中不要出现spring.mongo,否则会报错多个Bean问题。结语: 使用Mongo多数据库的情况很少,所以一般没有样例,或者样例很老,这里特此写一篇文档,当做笔记,也为后来人开路。原创 2023-02-06 11:24:15 · 966 阅读 · 0 评论 -
【环境】Python多版本共存
如果执行完,python -V未发生改变,重启下shell。本意是出一次多种语言的多版本共存,这是第一篇。~/Pshell.sh 需要的版本即可。原创 2023-01-29 11:36:28 · 391 阅读 · 0 评论 -
【开发心得】Spring Mail发送邮件
登录QQ邮箱,设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 等设置。与Apache Commons-Email类似,都是对JavaMail的进一步封装。(1)如果是配置方式,可以在properties字段中直接指定(端口465方式)Sun(Oracle)官方标准,功能强大,用起来比较繁琐。4. 新浪邮箱 首页-客户端POP3/SMTP/IMAP。网易163邮箱 设置-POP3/SMTP/IMAP。网易126 邮箱 设置-POP3/SMTP/IMAP。原创 2023-01-16 10:35:29 · 1203 阅读 · 0 评论 -
【环境搭建】Mac10.15.7 配置Apache httpd python cgi
3、在httpd.conf中找到如下代码,目录/Library/WebServer/CGI-Executables就是cgi-bin运行的文件目录,我们创建的各种脚步需要放到这个目录下才能运行。CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP 服务器,提供同客户端 HTML 页面的接口。并且可以在后面增加.py,表示可以访问.py结尾的python脚本文件,也可以增加.pl,.shell等等,表示可以执行各种类型的脚本。转载 2022-12-30 17:57:24 · 456 阅读 · 0 评论 -
【开发心得】Java ftp开发注意事项
先outputStream close之后才能调用 completePendingCommand,否则会卡住,有文章说,如果上传路径没有权限,无法创建output对象,也有可能卡住,需要注意下。博主实践的逻辑是,使用断点续传的两组方法,外部传递listener 抽象接口,监听stop时机,在流拷贝的时候,关闭输入输出流,并使用ftpclient.abort()方法。除了先关闭之外,一定要确定远程文件存在且能访问,否则inputStream为null,无法调用close,就会卡住。原创 2022-11-18 17:40:23 · 1444 阅读 · 0 评论 -
【开发心得】ftp下载文件,文件不存在的原因解析
值得注意的是,网上很多答案都是直接 或者本地字符集, 或者 直接当做GBK了事,这样,如果ftpserver不是GBK,会有问题。如果不放心,多做几个编目推测即可。allow_writeable_chroot=YES # 不存在就添加,存在就改成YES。2. 未锁定目录的话,可以锁定目录,或者从linux 根目录开始书写地址。1. 文件不存在,或者地址前后存在空格,trim即可。3. 包含中文等字符的话,需要在获取的时候进行判断。2. 是否锁定用户目录,决定了相对的根目录。3. 是否包含中文等字符。原创 2022-10-28 17:45:46 · 3039 阅读 · 0 评论 -
【开发心得】js时间加法
js时间加法,定义一个function。使用moment.js。原创 2022-10-23 22:13:52 · 290 阅读 · 0 评论 -
【开发心得】Java Jaxb unmarshall Content is not allowed in prolog.
前言: 使用Jaxb反序列化xml,处理UTF-8 with bom的文件时报错。问题: Content is not allowed in prolog.原创 2022-10-18 13:53:14 · 407 阅读 · 0 评论 -
【开发心得】electron iohook集成使用方案
2. 注意iohook 安装版本,上一个问题是因为版本没对应导致,这个问题往往出现在新版electron 和 nodejs 身上,据说 nodejs 16.x以上版本 和 electron 高版本未编译,github iohook issue 页面有临时解决方案和手动编译方案。注意事项1: iohook安装问题,版本确认很重要,再就是网络环境很重要。前言: 最近在研究门锁刷卡,用electron写了个客户端,需要读取全局的键盘输入。百度搜到的帖子都不是很完全,或者只言片语,这里稍微完整的写一下。原创 2022-10-15 03:10:40 · 4321 阅读 · 12 评论 -
【分享】idea版本与maven版本不一致的坑
在确保maven 相关的配置没有问题的时候,可以考虑下,是否是idea与maven版本配置问题。比如 idea 2022,使用maven3.6.x 有点小问题,推荐版本3.8.x。idea 2021 使用高版本3.8.x 有点小问题,推荐版本3.6.x。转载 2022-08-31 00:13:16 · 1604 阅读 · 0 评论 -
【开发心得】Electron(Vue)使用配置文件
这样就实现了配置文件。如果需要热刷新,就使用事件监听方式,在main线程中,监听下,render线程在需要配置的时候,去请求一下。背景: Vue+ElementUI的web项目中, 可以配置一个config.js来解决,那么eletron呢?1. 直接使用 global.sharedObject 让main线程与render线程直接数据共享。package.json build设置(省略其它配置)2. 借助事件传递。...原创 2022-08-11 19:19:26 · 2815 阅读 · 0 评论 -
【开发心得】fastjson高版本@JSONField序列化问题
1.7.x版本后,JSONField注解的处理方式发生了变化,嵌套或者JSONArray(List)直接使用@JSONFiled注解可能得到null值,配合alternateNames 处理即可。原创 2022-08-10 15:15:02 · 706 阅读 · 0 评论 -
【开发心得】借助修改host测试回调
/api': { // 凡是接口中后面域名中带有api的 , 框架都会进行一个代理转发。target: 'http://xxxxxx/api', // 后端提供的接口地址。changeOrigin: true, // 开启跨域代理。其二是:DNS工作流程,在域名解析的时候,会先解析本地host.其一是: redirect 重定向是浏览器发起的行为.Mac修改Host:(权限不够,先sudo su)1. 直接将测试工程扔到做了外网的服务器测试.2. 内网穿透(netapp,花生壳等)...原创 2022-08-03 20:06:58 · 338 阅读 · 0 评论 -
【开发心得】记录一次自定义starter的实现
springboot自定义starter无法@Autowired 问题原创 2022-06-30 09:33:30 · 226 阅读 · 0 评论 -
【开发心得】java轻量级rpc调用,springBoot集成jsonrpc4j使用
springBoot集成jsonrpc4j使用;java轻量级rpc调用原创 2022-06-20 20:24:11 · 2227 阅读 · 0 评论 -
[开发心得]java ftp上传中文问题
java 上传ftp中文问题原创 2022-04-02 18:58:55 · 722 阅读 · 0 评论 -
【开发心得】正确使用druid
关于Druid的使用,我们很多时候遵从默认,直接使用配置文件,直接采用如下配置 datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: 'jdbc:mysql://localhost:3306/xxx?useUnicode=yes&characterEncoding=UTF-8&serverTimezone=A原创 2022-02-08 17:12:19 · 1424 阅读 · 0 评论 -
【Go】无法获取github远程库的解决方案
如题,我们在引用远程库的时候,如果在墙,很容易遇到失败。1. 方案一: 手动下载对应的包。 这里以ansicolor为例: 1.1手动下载git包go\src\github.com\shiena\ansicolor 1.2 解压并且放置到C:\Users\你的账户名\go\src\github.com\shiena\ansicolor,注意从git上下载的包,可能包含master,要去掉,并且正确处理层级。注意main file的位置不要变动,...转载 2022-01-28 16:35:13 · 2908 阅读 · 0 评论 -
【开发心得】EasyExcel导入导出
概述:使用 easyExcel 3.x版本导出参考环境:jdk1.8Springboot 2.5.7easyExcel 3.0.5easyPoi 5.0.0 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <versio.原创 2021-12-27 19:19:21 · 852 阅读 · 0 评论 -
【开发心得】设置单元格为文本
环境: jdk1.8, poi 5.0, easyExcel 3.0.5前言:因为输出文件用到了类似00:09:23.10 这样的数据(时分秒帧率) 不是"hh:mm:ss.SSS"哈。2.x版本,可能需要自定义实现拦截器方式实现样式(好久没用过低版本了)3.x版本方案1:直接使用: @ExcelProperty("数字标题") @ContentStyle(dataFormat = 4) private Double doubleData;参考庄大神的升级笔记转载 2021-12-27 18:53:51 · 2451 阅读 · 0 评论 -
【开发心得】Xml转JavaBean
前言: 在JSON大行其道的今天,xml虽然重,但是因为更为严格,所谓还是有存在的价值的,而数据交互的时候,免不了JavaBean转xml或者xml转JavaBean。然后传统的解决方案就是直接使用dom4j,sax解析的方式,手动去get。这样会导致可读性变差,维护困难,是否有向json那样,有fastjson或者gson一类的工具可以用呢,答案是一定的。首先github上有一些类似fastxml之类的工具类,可以用,但是博主今天推荐的还是java1.6之后引入的jaxb不写重复的帖子,引用的文章已经转载 2021-12-10 10:58:12 · 775 阅读 · 0 评论 -
【开发心得】mongo shell连接远程数据库
前言: 场景,linux shell环境,仅安装mongo.sh客户端,连接远程数据库,验证可访问性。(centos为例)1. 获取shell 二进制文件 wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-shell-4.0.5-1.el7.x86_64.rpm2. 安装shell客户端rpm -ivh mongodb-org-shell-4.0.5-1.el7.x86_6原创 2021-09-15 14:30:38 · 814 阅读 · 0 评论 -
【开发心得】解决es7.x出现 Limit of total fields [1000] in index [xxx] has been exceeded
现象:Limit of total fields [1000] in index [xxx] has been exceeded问题:如何设置elasticsearch的index字段上限,从默认1000到任意值?------ 以下操作使用 kibana完成1.查询settings设置(未设置的情况下,默认结果里边应该没有limit选项)GET xxxx/_settings2.设置下字段上限PUT xxxxx/_settings {"index.mapping.t.原创 2021-09-08 15:18:03 · 3974 阅读 · 0 评论 -
【分享】Java一个键(key)对多个值(value)存储
1.概述在本教程中,我们将探讨用于处理具有重复键的Map的可用选项,或者换言之,允许为单个键存储多个值的Map。2.标准MapJava有几个接口Map的实现,每个都有自己的特殊性。但是,现有的Java核心Map实现都不允许Map处理单个键的多个值。我们可以看到,如果我们尝试为同一个键插入两个值,则将存储第二个值,而第一个值将被删除。它也将被返回(通过*put(K键,V值)*方法的每个正确实现):Map<String, String> map = new Hash..转载 2021-09-02 09:44:51 · 10596 阅读 · 2 评论 -
【开发心得】es7 spring data elastic search Java API 分词 操作
前言:最近有个需求,是人脸检索,xxx对xxxx笑了,非常自然语义化(口语化)的检索条件。博主的实现思路有2种,主要有:1.借助es的ik分词,去拆分口语化搜索,并且获取关键字。2.规范搜索格式,直接搜索结果。这篇博文就是基于1的思路衍生的。我们可以借助kibana或者其他可视化工具,甚至是rest请求,直接验证分词结果(耐心往下看)(elk7.8环境,配置了ik插件)GET _analyze{ "analyzer":"ik_smart", "text":"小龙女对杨.原创 2021-09-01 17:51:39 · 772 阅读 · 0 评论 -
【分享】Java中文字符串包含数字排序(自然语义)
前言:根据需求,出现分类10,分类7,分类03类似的数据时,需要排程分类03,分类7,分类10,可参考如下实现。核心算法: 1.实现Comparetor,重写compare 原本是按照给定的排序规则,逐字符比较。需要改写成我们的规则 2.找到数字元素,进行比较。注意是同位置。import java.util.Arrays;import java.util.Comparator;public class Demo { public static void ...转载 2021-08-26 10:48:09 · 1173 阅读 · 0 评论 -
【分享】mysql查询结果命令行直接导出
命令格式:前面是查询语句加上(into outfile)加上后边的输出地址select * from xxx where xx = '' into outfile '/home/xxx.csv'问题:running with the --secure-file-priv option so it cannot executre this statem如果出现上述报错,原因是Mysql配置文件规定了导出文件的默认路径,自定义路径会报错。解决方案:1.关闭指定,即将配置文件中的.原创 2021-08-18 14:02:31 · 1328 阅读 · 0 评论 -
[分享]kibana 7.8 centos环境安装遇到的问题及解决方案
kibana 7.8 centos环境安装遇到的问题及解决方案问题一:Could not close browser client handle解决方案:yum install ipa-gothic-fontsyum install xorg-x11-fonts-100dpiyum install xorg-x11-fonts-75dpiyum install xorg-x11-utilsyum install xorg-x11-fonts-cyrillicyum insta原创 2021-08-10 11:29:49 · 997 阅读 · 2 评论 -
【环境搭建】常见的挂载方式挂载命令及自动挂载
前言:常见的文件系统,或者说存储方式,主要有如下几个:NFS XFS EFS CIFS COSFS OSS 其中后边两个是基于AWS S3的腾讯云存储与阿里云存储. 一、NFS mount -t nfs 172.x.x.x:/shares/test /Volumes/172nfs 二、cosfs cosfs 125626:cd /home/cosfs -ourl=cos.ap-chengdu.myqclo.原创 2021-07-30 17:34:07 · 459 阅读 · 0 评论 -
【开发心得】解决iframe 请求security出现X-Frame-Options
在开发SpringSecurity配置的项目时,返回带有iframe的页面时,无法显示。报错截图:打开页面工具看到提示Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'>>>>> Springboot 2.x 要在继承了WebSecurityConfigurerAdapter 的配置类中配置。结合SpringBoot只要在页面访问控制的配置中加上http.原创 2021-07-30 11:22:25 · 1708 阅读 · 0 评论 -
[分享]redis increment实现分部署锁
@Autowiredprivate RedisTemplate redisTemplate; /** * 加锁 */public boolean getLock(String key) { try { long count = redisTemplate.opsForValue().increment(key, 1); if(count == 1){ //设置有效期2秒 redisTemplate.expire(key, 2, TimeUnit.SECONDS).转载 2021-07-22 19:17:31 · 478 阅读 · 0 评论 -
【开发心得】Chrome/Edge 91版本SameSite by default cookies被移除后的解决方案
前言:场景是cas单点登录,使用iframe解决跨域问题。chrome 版本大于80 且 小于91的情况,可以通过 在chrome浏览器地址栏输入chrome://flags并回车 在搜索栏中输入SameSite by default cookies搜索,并禁用如图中的两项设置 ,改为Disabled即可 点击右下键ReLaunch重启浏览器即可 感谢:https://www.cnblogs.com/sexintercourse/p/14674090.htm.原创 2021-07-19 13:28:32 · 6142 阅读 · 2 评论 -
【分享】electron应用打包后开启F12
前言: 在开发Electron过程中,有些测试需要在打包后进行。但是无法想看到调试信息。一则可以借助logger.js将相关信息打印到日志中.另外一种方法就是在打包后开启dev开发者模式。步骤1:webPreferences中,devTools设置为true,并且高版本的话,nodeIntegration需要打开。(main.js或者main文件夹下index.js)webPreferences: { devTools: true, nodeInteg...原创 2021-07-15 14:14:25 · 6376 阅读 · 0 评论 -
【分享】Java巧用位操作,实现单字段记录多状态
前言: 依稀记得以前做小游戏的时候,看到一些案例,是用单字段记录怪物的血值状态啥的,比如或者了什么buff,借助的就是位操作,虽然Java和c/cpp有一些差距,但是这个思路可以借用。知识补充:关于 |= 运算符:|= 运算符和 += 这一类的运算符一样,拆解开就是 a = a | b;代码如下:public static strictfp void main(String[] args) { int a = 5; // 0000 0101 int ...转载 2021-07-14 16:50:54 · 811 阅读 · 0 评论 -
【开发心得】在yml中获取map(备忘)
前言: yml作为现在开发中,使用较多的配置文件格式,支持多种数据,单值,数组,list,map。配置文件中,map的写法应该是(当然还有别的):my: help: map: '{"key":"value","key1":"value1"}'代码中获取 @Value("#{${my.help.map:{}}}") private Map<String, String> convertRuleMap;...原创 2021-07-08 19:39:51 · 3718 阅读 · 3 评论 -
[环境部署] centos 安装 cosfs,挂载cosfs存储
前置知识:AWS S3,对象存储(阿里叫oss,腾讯叫cos),mount挂载一、安装cosfs工具COSFS 工具支持将 COS 存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象, COSFS 提供的主要功能包括:支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。 大文件分块传输功能。 MD5 数据校验功能。 将本机数据上传至 COS,建议使用COS Migration 工具或COSCMD 工...原创 2021-07-05 16:02:47 · 1238 阅读 · 0 评论 -
【开发心得】electon vue updater自动升级完整步骤与样例
前言: 之前的博文中预告了会在近期进行关于"electron-vue autoUpdater"完整案例的编写。这里兑现承诺。直接先贴一下可用的git地址。https://gitee.com/sun577586587/electron-vue-updater测试的时候,请自行搭建http://localhost:8000/download/win的路径。(暂时不详细说明测试步骤,找时间补充个gif或者小视频吧,有问题欢迎先在评论讨论)环境:一、从零创建项目1.新建项目.原创 2021-07-04 18:27:19 · 704 阅读 · 2 评论