- 博客(65)
- 资源 (3)
- 收藏
- 关注
原创 解析带图片的excel报XSSFClientAnchor.setCol2 空指针
打开excel,选中图片,ctrl+A选中所有图片,右键,选择 大小和属性,选择 随单元格改变位置和大小。
2023-12-07 17:50:58
749
原创 RedisCluster集群模式下master宕机主从切换期间Lettuce连接Redis无法使用报错Redis command timed out的问题
大致意思是,Redis集群配置在运行期间可能会改变,可以添加新的节点,为特定插槽的主节点可以发生改变,Lettuce处理Moved和Ask永久重定向,但是由于命令重定向,你必须刷新节点拓扑视图,拓扑是绑定到RedisClusterClient的示例,所有由一个RedisClusterClient实例创建的节点连接共享相同的节点拓扑视图,视图可以采用以下三种方式更新。当然,如果你想就此放弃lettuce转用jedis也是可以的 Spring Boot2.X版本,只要在pom.xml里,调整一下依赖包的引用。
2023-03-09 11:40:40
3010
原创 redis cluster配置之read-mode
追踪redission的源码发现,默认情况下使用的SLAVE,也就是仅从从节点读取数据,当从节点挂掉后,连接用完后,会导致集群整体不可用状态,非常危险。运维将redis.cluster.read-mode指定为MASTER-SLAVE后,程序运行正常,redis集群正常故障转移,且可以从master中读取数据。如果read-mode配置的是MASTER-SLAVE,那么允许应用程序在slave节点异常的情况下,从master中读取数据。手动连接上集群,redis-cli -h -c,指定读写操作正常。
2023-03-08 17:48:21
1319
原创 RestTemplate请求参数字符串转义问题
问题:在使用restTemplate进行get请求时,发现字符串中的加号被转义成空格。解决方法:将请求方式改为POST,请求参数改为对象。
2022-09-26 14:27:51
1083
转载 mac装载移动硬盘失败
昨天拔硬盘时,不能弹出,赶着要睡觉,就直接拔掉USB接口,谁料到今天再插进去,电脑不能识别,无法装载了.我的天那, 里面很多重要资料,我以为硬盘坏了,要重新格盘了...T T还好在网上找到了大神们的指点:1) 先使用diskutil list 查看自己宗卷名字 我的是Netac 对应的是/dev/disk2SiegdeMBP:~ sieg$ diskutil list/dev/disk0 (internal, physical): #:
2020-12-28 22:57:08
685
原创 使用eletron-vue制作zookeeper图形化客户端工具zk-view-tool,mac和win都可本地安装是使用
项目背景近来研究zookeeper发现没有一款很好用的zookeeper图形化客户端工具,idea中虽然有一款类似的插件,但总感觉会占用太多内存导致电脑变卡,而且不支持多客户端接入。又由于自己之前了解到到electron.js可以基于前端(html+css+js)做桌面软件,于是决定自己做一个桌面软件来使用。源码地址https://github.com/yangyuscript/zk...
2020-05-04 19:53:41
1140
1
原创 java中的观察者模式
今天来简单介绍下java中的观察者模式,所谓观察者模式通俗理解就是,订阅关系。那么就存在订阅者和发布者两个实体,首先订阅者关注发布者,发布者可以发布消息通知所有订阅者。下面分两步解析java中的观察者模式:1.源码解读 2.demo展示1.UML解释1.1 Observable(java class): 被观察者(发布者Publisher)源码:package java....
2019-07-21 12:36:00
270
原创 使用QRCode.jar生成二维码图片、输出流及Base64编码串,同时支持解析二维码
背景:项目中需要根据用户的某个编号通过算法计算得到一个支付码,然后将此支付码生成二维码,展示在打印的票据上。决定使用QRCode去完成此次任务。使用步骤:1.下载jar包,项目依赖此jar包。下载地址:http://www.pc6.com/softview/SoftView_459360.html2.编写工具类:2.1: 二维码图片解析工具类 TwoDimensionCodeIma...
2019-06-02 10:56:58
2220
原创 使用IDEA查看类或接口的继承关系并生成继承关系图
1.找到需要查看的类或接口,选中类名,右键找到Diagrams,选中Show Diagram。或者使用快捷键ctrl+shift+alt+U2.在弹出的新窗口中,将看到一个可拖拽的小图,选中按住快捷键ctrl+alt+B,在弹出的菜单中将看到所有继承或实现该类或接口的子类或接口,可以单选其中一个,也可以按ctrl+A全选回车即可查看到所有该类的继承实现关系。...
2019-05-26 10:40:36
6835
3
原创 springboot打jar在linux服务器上运行常见问题
1.在项目根目录执行mvn clean install 命令打包springboot应用为jar包2.将jar上传到到云主机上执行java -jar XXXX.jar命令运行jar包,发现两个问题。 2.1 关闭连接主机窗口后,服务不可用 解决:需要将jar应用设置为后台运行,执行命令 nohup java -jar XXX.jar & ...
2019-02-23 21:08:57
752
原创 java爬虫小技巧
最近需要爬取某学校教务网的数据,思来想去决定使用java来实现,在使用chrome查看网站登录post请求时由于点击登录后页面发生跳转在network中居然找不到登录的post请求,经百度,发现只需在chrome调试框中勾选如下即可:...
2018-12-19 21:36:35
288
原创 使用pagehelper报错 java.lang.NoClassDefFoundError: net/sf/jsqlparser/expression/Expression
解决方法:引入jslparser jar包,pagehelper jar依赖前面这个jar所以两个需要同时引入,才可使用pagehelper。(最好使用maven这样就不会有这个问题了)引入pagehelperjar包后运行报错:2018-12-15 21:49:38,563 INFO[com.mchange.v2.c3p0.C3P0Registry:216]- Initializing...
2018-12-15 21:54:41
8590
4
原创 阿里云服务器centos设置redis自启动
一.先下载解压redis,然后进入utils目录 二.打开文件redis_init_script ,执行命令 vi redis_init_script三.根据实际环境重新写路径,注意最后的两行蓝色注释要加上。PIDFILE先去/var/run看看有没有redis开头的pid文件,没有的话先去redis-4.0.5/src下执行 ./redis-server ../redis.conf ...
2018-11-19 22:43:39
725
转载 rest和rpc的理解
两者没有高下之分,无非是一种约定俗成的标准。习惯用RPC就用RPC,能理解REST就用REST。JSON-RPC比较符合直观,格式也相对宽松;REST最近正流行,有自己的一套设计规范。 REST面对的疑问跟当年刚开始流行面向对象时的情况是一样的。它适合很多情况,但并不适合所有情况。最差的结果就是盲目跟风,又对REST的概念和理念一知半解,最后搞出一个半吊子的怪胎,还自我标榜...
2018-07-25 16:26:27
650
转载 Java回调机制趣解,非常好
Java的回调机制,可能都听说过,当然这个机制不仅限于Java,其他各门语言,都应该有使用。但是怎么理解,就有点困惑。还有什么是抽象类回调,什么是接口回调,以及二者之间的差别。也不是一句两句就能说清楚,就算说的人清楚,但是不能保证,听的人也能听的清楚。下面看这个小故事,来深入理解一下回调机制,然后上面的那些问题,也就不攻自破了。 故事背景 在日常编程中,我们经常需要对内存的数据...
2018-07-25 14:53:01
196
原创 跨域问题究极解决方法及详解
普通的跨域问题:通过配置后台的CORS完美解决问题。(千万不要试图在前台的配置解决请求跨域的问题,把这个问题丢给你的后台处理才能一劳永逸)我遇到的奇葩问题描述:使用vue-resource向spring-boot搭建的后台发起post请求一切正常(此处进行了跨域请求的处理,通过配置cors解决跨域问题),后期想要在请求头中添加自定义内容x-access-token,这时出现问题,通过chrome查...
2018-04-07 00:14:09
1575
转载 开发须知的TOP20漏洞编码安全规范
1.SQL注入Ø 风险描述SQL注入主要发生在应用程序数据库层面上。程序员在设计程序的时候,没有对用户的输入进行校验,含有特殊字符语句会被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。 Ø 特殊字符对SQL注入而言,特殊字符包括但不限于 (注意大小写绕过以及双写绕过):“--,#,//(注释符)”...
2018-04-04 11:27:57
3688
原创 Intellij IDEA 使用技巧
1、文本编辑 删除 ctr + y 复制 ctr + D2、智能提示 提示 ctr + space 智能提示 ctr + shift + space 完成当前语句 ctr + shift + enter 建议提示为参数 ctr + alt + P 对代码重新...
2018-03-22 11:24:20
267
转载 SVN文件上感叹号、加号、问号等图标的原因
黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认为你的修改和...
2018-03-14 17:51:49
3696
2
原创 java中关键字static、final和static final
1.static:可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类) a.修饰变量:做全局变量,所有对象实例共用static修饰的变量,jvm中对此变量仅申请一块空间。 b.修饰方法:静态方法不能被重写,只能被隐藏。子类只能继承父类的静态方法,不能重写父类静态方法,子类隐藏了父类的静态方法。静态方法可以包含静态和非静态方法,非静态方法只能包含非静态方法,不能包含静态方法。 ...
2018-02-28 11:10:38
297
转载 Git如何把本地代码推送到远程仓库
前言最近在项目中使用到Git版本控制系统进行代码的管理以便于团队成员的协作,由于之前使用的是SVN来进行版本控制,所以对于Git的使用还是有待熟练掌握。Git与SVN类似,个人认为两者之间比较直观的区别就是Git属于分布式的而SVN是集中式的,Git不需要联网(连接代码服务器)即可进行代码的提交以记录每次的修改而SVN需要连接到代码服务器才能进行提交。12若想更深入学习了解,在此推荐一个教程: ...
2018-02-26 16:31:35
1119
转载 计算某经纬度1公里内的对象
从具体的某站到其他基站的距离,可以简单的遍历一次 得到其他站点和目标站点的距离.再做判断就可以了,已知2点坐标,获得他们的距离的方法:2点分别为P1(Lat1, Lng1) , P2(Lat2, Lng2)公式的单位都是弧度。 /** 【简注】 根据已知两点经纬度求距离. 经纬度输入以度为单位* 使用此函数,需要包含头文
2018-02-05 21:15:55
4410
转载 java反射入门
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖
2018-02-05 09:57:51
3423
9
转载 centos7通过yum安装JDK1.8
安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是j
2018-01-25 22:07:50
286
转载 Vue 爬坑之路(一)—— 使用 vue-cli 搭建项目
vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js首先需要安装node环境,可以直接到中文官网http://nodejs.cn/下载安装包。只是这样安装的 node 是固定版本的,如果需要多版本的
2018-01-24 20:48:14
3095
原创 jdk1.7与jdk1.8切换问题
准备条件:安装好jdk1.7和jdk1.8步骤一:删除C:\Windows\System32下java.exe、javaw.exe和javaws.exe三个可执行程序步骤二:删除环境变量”Path”中的 ”C:/ProgramData/Oracle/Java/javapath”步骤三:修改对应的JAVA_HOME、Classpath、Path中的路径检查版本时候已更改
2018-01-18 09:01:02
385
转载 Spring-boot:快速搭建微服务框架
前言:Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。Spring Boot的主要优点:为所有Spring开发者更快的入门
2018-01-17 21:20:00
637
原创 Vue2.0结合iView快速搭建后台管理网站模板(附github源码地址)
一、项目背景:尝试使用vue结合其UI框架iView快速搭建网站后台模板(在前后端分离的大背景下,传统的js、jquery已经不在是搭建前端的首选,尤其是mvvm模式下衍生出来的react.js、angular.js和vue.js等框架是的前端开发更加高效简洁,性能提高的同时,使得整个项目的前后端开发更加迅速有质。至于为何选择vue,原因如下:1.算是支持国产吧 2.vue似乎相比另外两个热门
2017-12-16 19:16:57
24553
6
原创 springboot使用Redis完整过程详解及常见问题总结
一.背景:项目中需要使用到Redis做缓存 (ide:IDEA redis服务器:腾讯centos7)二.步骤:1.服务器上安装redisa.执行指令:$ wget http://download.redis.io/releases/redis-4.0.5.tar.gzb.解压:$ tar -xzvf redis-4.0.5.tar.gz(此处注意一定不要解压到根目录,可以解压到...
2017-12-02 22:00:03
8609
8
原创 Android开发使用腾讯地图,开发环境搭建详细步骤
背景:项目(Android studio开发)需要用到地图,选择了腾讯地图,没想到坑很多(不得不吐槽下腾讯地图的文档啊,写的不是一般的烂!!!幸好有项目demo),特此将步骤记下。腾讯地图文档地址:Android地图SDK:http://lbs.qq.com/android_v1/guide-project-setup.html Android定位SDK :http://lbs.qq.
2017-11-08 21:55:29
2931
转载 Spring-boot:快速搭建微服务框架
前言:Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。Spring Boot的主要优点:为所有
2017-11-04 14:08:15
1475
原创 Tomcat8配置多个端口访问各端口对应的JavaWeb项目
背景:最近遇到个项目部署的小要求:一个tomcat下配置多个端口去访问端口对应的JavaWeb项目原理:tomcat中conf下server.xml文件中的service节点即可配置tomcat的端口号及对应的项目配置步骤:1.打开tomcat下conf文件夹中的serve.xml文件,找到service节点对应的代码 <Service name="Catalina"> <...
2017-11-02 16:34:50
3549
原创 搭建网站从服务器购买备案到域名注册整个流程
1.购买服务器(阿里云或者腾讯云)2.在购买服务器的平台进行备案(填写信息、申请幕布拍照、提交审核),大概一星期左右3.收到管局备案成功的信息之后到www.beian.gov.cn办理公安备案4.购买域名5.到购买服务器的平台进行域名解析6.正常访问网站2018/4/1 23:10 更新在更换服务器时还想使用之前备案过的域名(域名与服务器ip在备案时是绑定的),此时不知道是否还需要重新备案,于是尝...
2017-10-25 10:44:30
2545
2
原创 spring boot集成mybatis使用swiper.js制作中秋祝福H5并打成jar包发布到服务器
github地址:https://github.com/yangyuscript/demo.git访问地址:http://119.29.169.103:8084/项目结构图:1.创建项目1.1pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200
2017-10-10 15:05:02
538
原创 两个同品牌路由器有线连接
如果你有需要使用两个路由器去连接上网恰好这两个路由器又是同种品牌(同种品牌的意思就是路由器的设置地址是一样的即同是192.168.0.1,那么当你配置好第一台路由器,输入设置网址准备配置第二台的时候会发现自己始终处于需要登录密码的提示状态,而这个状态其实是第一台的登录页),那么我的办法或许能够帮到你。解决办法一:如果你的是新版路由器,以我的情况来说(我的是腾达路由器新版之前一直使用192.
2017-08-29 18:20:34
2879
1
转载 Redis与关系型数据库的同步问题
Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。按照我们一般的使用Redis的场景应该是这样的:也就是说:我们会先去Redis中判断数据是否存在,如果存在,则直
2017-08-23 18:00:01
4174
原创 JAVA23种设计模式总结
1.设计模式定义:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的
2017-08-17 18:36:29
243
原创 javaweb项目发送邮件自定义发件人名称(javamail)
在开发javaweb项目里的邮箱验证功能时需要去设置邮件发送人的昵称,在网上找了几个教程,在此罗列出来供大家参考。方法1.(亲测有效) String nick=""; try{ nick=javax.mail.internet.MimeUtility.encodeText("自定义发件人名称"); }catch(Unsu
2017-08-16 18:10:16
5168
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人