2020.4——
文章平均质量分 63
追逐梦想永不停
在此起誓,我愿为梦想拼上一切,只要梦想还未实现,我就不会停下。
展开
-
Java后台解决request请求体不能重复读取+解决XSS漏洞问题
本文使用了3个java类,原理是使用过滤器,封装一个自定义的HttpServletRequest对象,重写其中的、等方法,替换掉非法字符\等,使得从request中获得的key-value类型参数、header参数、请求体(包含json)参数是合法字符,以防止XSS漏洞;同时增加了request请求体可以重复读取的功能。原创 2022-08-24 16:59:36 · 2171 阅读 · 0 评论 -
mysql增加索引用sql整理
主键索引:创建表时自动创建。普通索引:create index index_name on mytest_table (create_time)组合索引:create index index_name on mytest_table (create_time,status)唯一索引:create unique index u_index_name on mytest_table (create_time)查看索引:show index from mytest_table查看sql原创 2022-04-13 10:07:55 · 1171 阅读 · 1 评论 -
kafka常用命令总结
一、前言最近生产遇到一个类似kafka消息丢失的问题,不太好排查,可能是以下几种情况:1.生产者把消息发送给kafka前就失败了2.生产者把消息发送给kafka的途中消息丢失,kafka没有收到消息3.生产者把消息发送给了kafka,但是kafka把消息放入队列失败,导致消息丢失4.kafka收到了消息,也放入了队列,但是消费者没有读取到5.消费者从kafka读取到了消息,但是处理失败了下方总结下排查过程与相关的kafka常用命令。二、kafka常用命令(2.12-2.2.0版本)首先找到原创 2021-10-27 15:14:08 · 2364 阅读 · 0 评论 -
springboot caffeine+redis实现二级缓存笔记
一、前言最近在项目中发现了用到caffeine+redis的地方,感觉写的很好,因此记一波笔记。caffeine是spring的cache,保存在项目本地。redis是分布式缓存,保存在redis服务器。查询数据时,先到caffeine中查,如果没有则查redis,如果还没有再查数据库。二、主要流程代码样例1.查询数据库的Java类ExamServiceImpl.java@Servicepublic class ExamServiceImpl implements ExamService {原创 2021-10-25 17:41:35 · 1138 阅读 · 0 评论 -
hive -e with as生产环境用法样例
hive -e "xxx" 可以运行引号内sql语句;hive -f xxx 可以运行文件内sql语句;with as 后可以写一个select的sql,可以用来构建一个临时表,表中的数据是自己写的sql生成的,然后可以用这个临时表的数据对其它表进行操作。//with...as...需要定义一个sql片段,会将这个片段产生的结果集保存在内存中,后续的sql均可以访问这个结果集,作用与视图或临时表类似.下方是 hive -e with as 用法样例,先用sql构建了一个临时表与数据,然后把临时表中原创 2021-10-19 11:50:38 · 373 阅读 · 0 评论 -
Sqoop+Jenkins实现Mysql与Hive数据库互传
一、前言最近在使用Sqoop+Jekins实现mysql与hive数据库数据互传。主要是用sqoop的import命令把mysql数据导入hive,以及使用export命令把hive数据导出到mysql。Jekins起定时作用,定时执行sh脚本,每天同步一次。相关笔记记录如下。感觉Sqoop与kettle类似;不过听说Sqoop处理大数据迁移比kettle性能好/*kettle数据的具体流向可以指定,可以是各种数据的存储工具;sqoop只是完成hdfs到关系型数据库 或者 关系型数据库到hd原创 2021-10-18 17:13:17 · 467 阅读 · 0 评论 -
DB2 SQL Error: SQLCODE=-1060,SQLSTATE=08004 解决方法
错误信息:DB2 SQL Error: SQLCODE=-1060,SQLSTATE=08004 错误原因:用户没有权限。解决方法:修改DB2中对应用户的权限,允许其访问指定数据库。备注:1.这个错误码一直百度不到,后来用bing才找到;看来以后还是用bing(国际版)搜索好。(当然有外网能直接搜就更好了)2.相关网址:https://www.ibm.com/support/pages/what-meaning-sql-error-1060-logged-db2diaglog-file原创 2021-10-14 17:33:16 · 2925 阅读 · 0 评论 -
MySql建表语句迁移DB2方法总结(踩坑记录)
一、前言最近需要把mysql数据库中的表迁移到DB2数据库,表内的数据用kettle可以实现迁移,但是建表语句却怎么也搞不好。百度半天,发现并没有什么好的方法或工具能把mysql建表语句转成DB2。Mysql建表语句想转成DB2,似乎只能自己手写。然后就踩了一堆坑,用时2天,总算搞定了。记录如下。二、重点部分1.DB2中,varchar必须写明长度限制,bigint与integer必须不写长度限制。(一个小坑)2.mysql中,varchar(30)可以保存30个汉字;DB2中,varcha原创 2021-10-12 16:58:12 · 2031 阅读 · 0 评论 -
studioOne安装教程与简单使用(图文)
一、前言最近在学习使用studioOne制作简单的midi文件与mp3文件,现在整理记录如下。本文属于studioOne入门教程,记录了使用studioOne制作钢琴midi、导出为mp3的方法。二、安装与简单使用教程1.安装studioOnestudioOne下载地址https://www.downkuai.com/soft/118628.htmlhttps://zj.downkuai.com/fictitious/soft/studioone5_118628.rar注意事项:(1)安装原创 2021-10-08 14:39:11 · 15505 阅读 · 0 评论 -
Spring静态变量无法注入的简单实用解决方法
一、前言最近有一个Java后台项目,使用了远程的配置中心(SpringCloudConfig),也就是说配置信息都在远程(一个git上存着),这个Java项目启动时会从远程读取yml等配置信息,然后完成启动。现在同事想在Util类中写一个静态方法,用到一个静态变量(static类型),让静态变量读取远程yml上配置的值,给类加了@Component注解,给变量加了@Value注解,但是发现那个静态变量还是没有值。根据spring的实现原理,加了@Component注解后,spring会创建一个类对象放原创 2021-09-27 17:11:35 · 1333 阅读 · 0 评论 -
win10中Elan触摸板启用“双指点击打开右键菜单“与“双指滚动“方法总结
搞到一台公司的笔记本,使用的是Elan的触摸板;因为需要,自己重装了个win10系统,然后发现"双指打开右键菜单"不好用了,以及"双指滚动"在某些地方也不好用(只能在浏览器双指滚动,idea或微信等都用不了)。经过百度,找到了解决方法,总结如下。一、Elan启用"双指打开右键菜单"1.打开"运行",打开注册表 regedit.exe2.修改以下参数:HKEY_CURRENT_USER/SOFTWARE/Elantech/SmartPad/Tap_Two_Finger 值改为 1HKEY_CUR原创 2021-09-27 09:22:16 · 4173 阅读 · 4 评论 -
AudioRecord报错startRecording() called on an uninitialized AudioRecord.总结
一、前言最近写一个Android项目,想使用AudioRecord录制手机内部声音,但是调用开始录音的方法startRecording()时,总是遇到这个错误:startRecording() called on an uninitialized AudioRecord.在此总结一下。二、分析1.百度发现,报这个错可能是AudioRecord没有初始化(没有new)。正确写法可以这样写:private AudioRecord mRecord = null;private final int原创 2021-09-26 14:20:59 · 4587 阅读 · 0 评论 -
Android开发之so文件使用方法详解
一、前言之前自己写了个扒谱助手apk,想把录音得到的pcm转成mp3,百度发现需要使用so文件实现,然后在踩了一堆坑后,终于实现了pcm转mp3的方法。包含如何生成so文件、如何使用so文件两个主要内容。现在记录如下。二、流程1.目标是android实现pcm转mp3,首先从这个网址找到了大概的方法:https://blog.csdn.net/u013487404/article/details/865205412.从网上下载了lame-3.100.tar.gz,直接解压就行;三、总结.原创 2021-09-26 11:52:45 · 4608 阅读 · 0 评论 -
Java后台服务器验签流程总结
一、简述本人当前负责的Java后台系统是这样的:用户登录的操作在某几台服务器上,进行实际业务处理的在另几台服务器上(有多类,每类有多台,例如考试系统服务器集群、问卷系统服务器集群等);同一个集群的服务器之前配置了session共享(基于redis),但是不同的服务器之间是没有的。例如,当用户准备登录问卷系统,首先由前端带着用户名密码请求登录服务器,登录服务器会根据用户登录参数、生成一个签名,返回给前端;前端带着签名与其它参数请求问卷服务器,问卷服务器会判断这个签名是否真实有效,如果有效,则允许继续操原创 2021-09-14 16:25:51 · 1238 阅读 · 0 评论 -
多项目按顺序mvn install与package的bat脚本
一、简述最近遇到一个java项目,由多个子项目组成,每次打包时,必须按顺序install一部分子项目,然后package另一个子项目,才能得到最终的jar/war包。如果顺序搞错,就会打包失败;如果修改代码后没有install,就会导致最终得到的jar/war包功能缺失……每次都得install3-4个项目,然后package1个项目,顺序还不能错,很烦;为了方便,本人写了一个bat脚本,可以按顺序install项目、package项目,记录在下方。二、正文1.bat脚本可以在windows下原创 2021-09-13 16:08:14 · 2092 阅读 · 0 评论 -
自己写的扒谱助手apk分享(永久0积分免费下载)
一、简介出于对扒谱的热爱,最近本人写了一个扒谱助手2.0版本的apk(之前的txt音乐播放器算1.0吧);之前一直是电脑扒谱,从此以后,手机也能方便地扒谱了。大概长这样(功能应该足够,样式请不要在意):●有低中高三阶音,有半音;●可以打开mp3/m4a,边听边扒;●可以打开/保存扒出来的简谱;●可以试听扒出来的简谱;个人感觉功能还可以吧,如果还有需要的后期再优化。二、使用方法具体使用方法如下:1.点击右上角菜单,选择打开音乐,然后选择本地音乐打开,上方即可使用播放/暂停、停止与滑块播原创 2021-09-06 22:35:02 · 590 阅读 · 0 评论 -
linux mysql忘记root密码的解决方法(直接修改root密码方法)
最近测试环境要迁移到另一组服务器上,之前的数据库、代码等都要迁移。mysql数据库被迁移到了新服务器后,迁移人员换了mysql密码,竟然没有告诉我们(甚至不知道应该找哪个人要密码);因此自己想了个办法,总算是能用旧密码登录了。反正是测试服务器,领导都说随便搞了,所以没问题(还好不用删了mysql重装)。Mysql是5.7.26版本的,网上的教程有的旧了,本文亲测可用。直接修改root密码详细流程:1.登录linux服务器,可以使用sudo的账号即可。2.执行命令,修改mysql配置文件:sud原创 2021-07-23 16:41:20 · 12082 阅读 · 4 评论 -
CORS(跨域资源共享)漏洞解决方法
最近,测试环境上的项目被360测试人员检测出来有一个CORS漏洞,以下记录下漏洞问题与解决方法。一、低危漏洞:CORS漏洞问题测试人员访问某个url,将请求头中的Origin字段修改为任意值,结果仍然能获得正确的响应报文,就说明有CORS漏洞。当CORS的设置不正确时,就会带来安全问题;当响应头中的Access-Control-Allow-Origin设置为null或*时,表示信任任何域,这时候就可能引入安全问题。修复方法是合理配置CORS,判断Origin是否合法;具体说就是不让在nginx或t原创 2021-07-23 11:02:57 · 29887 阅读 · 11 评论 -
linux查看日志常用命令
1.实时查看日志文件最后200行tail -200f /admin/project/server.log说明:显示的是日志server.log最后200行,会实时变化。2.显示日志中包含某个关键字的行以及上下100行grep -C 100 操作失败!错误信息 /admin/project/server.log说明:显示的是日志中所有包含"操作失败!错误信息"的行及附近上下100行;把-C换成-A可以显示目标行下方的行;把-C换成-B可以显示目标行上方的行。...原创 2021-07-19 16:57:31 · 3415 阅读 · 0 评论 -
ElasticSearch+Java后台第一次上线遇坑总结
最近开发了个ES项目,由于是第一次开发,因此在上线时遇到了一堆坑,现总结如下。一、Java项目报错“all shards failed”上线后,好多java中查询ES的接口都报这个错,导致前端数据直接显示"N/A"了;尴尬的一批。大概是java代码中用到了聚合的地方报错,记不清了;总之原因就是生产数据比测试多太多,因此测试的时候没报错,生产报错了;解决方法就是修改ElasticSearch的配置,在linux系统中用PUT请求修改的样例如下:curl -u elastic:#123456@ -H原创 2021-07-19 11:56:23 · 1429 阅读 · 2 评论 -
ElasticSearch常用命令与curl操作总结
ElasticSearch生产环境配置与curl操作总结ElasticSearch生产环境配置查看ES是否启动查看Kibana是否启动启动ES的命令启动kibana的命令ES设置密码kibana设置用户名密码CURL操作ElasticSearchcurl删除索引curl创建索引curl查看索引相关语句curl新增数据curl查询数据curl清空索引数据(保留索引结构)ElasticSearch生产环境配置查看ES是否启动jps -l可以查看ES进程号,例如17323 org.elasticsea原创 2021-07-12 17:09:17 · 1535 阅读 · 0 评论 -
mybatis-plus多数据库不打印日志的java解决方法
最近遇到一个问题,项目中用的是mybatis-plus,配置了多个数据库,不打印sql日志;网上一大堆说yml中配置的,但是配置后执行sql会报错:table不存在,不能用。java.sql.SQLSyntaxErrorException: Table 'main_db.user_msg' doesn't existuser_msg表确实不在main_db库中,在另一个库user_db中。本人分析,yml中配置后,mybatis-plus就会用另一个SqlSessionFactory了,而原创 2021-07-06 17:57:01 · 3932 阅读 · 0 评论 -
ElasticSearch与Mysql对比(ElasticSearch常用方法大全,持续更新)
ElasticSearch是一个开源的搜索引擎,可以它可以被下面这样准确的形容:一个分布式的实时文档存储,每个字段可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据...原创 2021-07-01 16:30:47 · 1508 阅读 · 0 评论 -
git下开发方法与svn下开发方法对比与总结
一、前言通过实际开发经历发现,git与svn下代码开发的步骤是不同的,先二、git下开发方法三、svn下开发方法原创 2021-06-16 12:14:46 · 304 阅读 · 0 评论 -
前后端分离后nginx与项目路径配置方法总结
一、前言前后端分离后,在同一台主机上,前端无法直接访问后台接口,会跨域;因此需要使用nginx,才能让前后端通信,便于开发。原创 2021-06-04 13:21:13 · 12520 阅读 · 2 评论 -
一篇文章轻松理解::关键字
一、基本概念::关键字是Java 8中的一个新特性,可以用来访问类的构造方法、类的静态方法,以及借助对象访问类中的普通方法。二、实例网上有一个常用的使用::关键字的例子,如下:List<String> list = Arrays.asList("1","2","3");list.forEach(System.out::println);执行后输出结果为:123说明:1.这段代码的功能是循环list,使用System.out.println()输出每.原创 2021-05-19 15:24:06 · 170 阅读 · 0 评论 -
@Scheduled定时任务没有按时执行的问题与解决方法
问题:之前生产上用@Scheduled注解写了一个springboot定时任务,5分钟执行一次,如下:@Scheduled(cron = "0 0/5 * * * ?")public void MyTimerJobSchedule() throws Exception { //省略具体业务逻辑 System.out.println("五分钟执行一次");}结果过了几天,领导通知说有问题了,一查日志,发现是这个定时任务的问题。本来应该是5分钟跑一次的,结果日志中发现,每天0点-3原创 2021-05-19 10:06:08 · 12114 阅读 · 3 评论 -
一篇文章轻松理解Lambda表达式
一、概念Lambda表达式是Java 8中的一个新特性,它允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。简单来说,就是一个简化匿名内部类写法的表达式。二、语法(parameters) -> expression或(parameters) ->{ statements; }三、特征可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 可选的参数圆括号:一个参数无需定义圆括...原创 2021-05-18 18:19:23 · 243 阅读 · 0 评论 -
考试系统交接日记(五):高并发架构简述与kafka处理高并发业务
一、高并发架构简述考试系统是一个百万级高并发的系统,可能同时有百万级的用户参加考试。考试系统主要涉及到高并发的功能为:用户报名考试、获取试卷、用户提交试卷答案、返回用户得分。考试系统其余主要功能为:管理员与老师管理试卷、老师查看自己班的考生得分、考试记录推送到其它系统等。考试系统使用了30多个服务器,其中某些服务器上(性能比较好的),1个服务器部署2个项目实例。考试系统后台大部分为springboot项目。●架构记录如下:1.使用nginx做网关,实现负载均衡、静态资源访问.原创 2021-05-17 16:41:21 · 784 阅读 · 3 评论 -
idea maven打包项目遇坑总结(test、audit错误等)
以下是java项目打war/jar包报错常见的坑与解决方法:坑一:test问题:项目打包失败,报错如下:Results :Tests in error:(..)Tests run: 6, Failures: 0, Errors: 1, Skipped: 0[INFO] ----------------------[INFO] BUILD FAILURE[INFO] ----------------------这是因为在【项目\src\test\java】下编.原创 2021-05-13 16:58:02 · 4505 阅读 · 1 评论 -
考试系统交接日记(四):session共享与ThreadLocal传递参数
一、session共享考试系统是一个高并发项目,可能同时有百万级用户在线考试,因此生产环境有30台服务器,涉及到session共享的问题。项目中,使用spring-session解决session共享问题。spring-session借助redis实现session共享。(生产上用到了2台服务器分别部署了1个redis)springboot项目使用spring-session使用方法:1.pom.xml中引入jar包<modelVersion>4.0.0</.原创 2021-05-13 15:47:19 · 489 阅读 · 0 评论 -
生产环境通用java项目发版脚本
此脚本用来先kill之前运行中的java进程,之后启动新的java进程。启动脚本的命令例如:/home/admin/shell/publish_jar.sh prod all start代码如下:#! /bin/shprofile=$1port=$2ports=(8080 8081 8082 8083)jar_file=/home/admin/jar/springboot.jars_start(){ nohup java -jar $jar_file --server.原创 2021-04-28 16:00:35 · 356 阅读 · 0 评论 -
考试系统交接日记(三):数据库学习与后台代码学习
简要记录如下:一、数据库学习方法1.查看数据库相关文档2.执行sql查看整个数据库内查看数据库内所有的表名、表备注、字段名称、字段类型、字段备注select t.TABLE_NAME ,t.TABLE_COMMENT ,c.COLUMN_NAME ,c.COLUMN_TYPE ,c.COLUMN_COMMENT from information_schema.`COLUMNS` c ,in...原创 2021-04-28 14:17:10 · 188 阅读 · 3 评论 -
考试系统交接日记(二):nginx与项目启动
2021.4.25考试系统的后台项目使用的是git,其中包含多个子系统;由于每个子系统提交的配置文件不统一,导致本地启动时费了半天时间。简要记录如下:一、考试系统后台启动流程1.首先要按顺序install某些项目,在 target/generated-sources/ 下生成一些.java文件,才能启动项目。2.然后要修改git上的配置文件,将[项目名-test.properties]中的dubbo的url改为本地,意思是使用本地dubbo生产者提供的服务,如[server1.du.原创 2021-04-26 18:04:07 · 228 阅读 · 0 评论 -
考试系统交接日记(一):使用install解决项目无法启动的问题
2021.4.15今天开会,领导让本人与另一个同事准备接收一个新项目——考试系统。具体来说,考试系统是一个已经开发完成的项目,原来由其他项目组负责的,现在要让我们项目组负责。要负责考试系统后续的优化、功能完善、运维等。<目前的工作主要是根据需求在已有的系统上增加新功能,很少从头开始开发一个新系统。>2021.4.16今天收到了考试系统的交接文件,文件类型比较齐全,在此记录一下(以后交接时也可以参考下准备哪些文件):一、系统简介PPT二、详细架构文档do..原创 2021-04-23 11:51:33 · 375 阅读 · 2 评论 -
读后感:写给人生的九封信,愿你的人生淡定从容,繁华似锦
原文地址:https://blog.csdn.net/qq21497936/article/details/114487442个人感想:感觉这篇文章写的确实很好,推荐阅读。本人读完后深受启发,不由得想写点个人感想。一、不要理会外部的压力,要自己从内部找到前进的动力。二、学习有用的,不要学习没有用的。(对自己发展有帮助的,就是有用的)三、要脚踏实地,过好每一天,不断成长。四、只有自己的层次高了,才有对应的圈子,而不是反过来。五、不要害怕孤独,要趁机让内心宁静,...原创 2021-04-15 18:30:49 · 376 阅读 · 0 评论 -
Android开发遇坑总结:ImageView展示图片位置错误的解决方法
之前写APP,要实现切换上一张、下一张图片、图片放大缩小的功能;总结下遇到的坑。一、ImageView展示图片位置不对当图片大于imageView框时,总是展示图片的中部,而不是从左上角开始展示;本来是想让图片从左上角开始展示的。解决方法:使用android:scaleType="fitStart",就能让图片从左上角展示了。代码如下: <com.example.myapplication.photoview.PhotoView原创 2021-04-14 18:16:11 · 1250 阅读 · 0 评论 -
react项目发版流程简要记录
1.到react目录下,打开cmd,输入npm run build2.使用FileZilla,打开服务器上前端项目目录,/nginx/web_project/page3.将我的电脑的dist目录下的所有文件替换掉服务器上page目录下的所有文件4.发版完成(nginx不用重启)...原创 2021-04-08 10:51:35 · 329 阅读 · 0 评论 -
kettle学习日记(Pentaho Data Integration)
一、什么是kettle●一个用java开发的软件,可以对数据进行一系列操作,例如数据整合、数据转换、数据迁移、数据导出报表等。●Kettle其实叫Pentaho Data Integration,Pentaho是公司名,Data Integration是数据整合。●Pentaho Data Integration分为商业版与开源版,在中国,一般人仍习惯把Pentaho Data Integration的开源版称为Kettle。二、常用功能本人所在的公司常用kettle把某个数据库中.原创 2021-04-07 16:18:29 · 1966 阅读 · 0 评论 -
React UmiJS项目开发日记(三):如何通过dataIndex删除数组元素
一、遇到的问题多个页面共用一个js文件,在js中增加2个筛选条件框、1个列后,多个页面都增加了2个筛选条件框、1个列。二、目标其它页面要隐藏2个筛选条件框、1个列,只在指定的页面中显示。三、解决方法1.首先,在 项目/src/pages/ListPage/models/ListPage.js里,初始化一个变量pageFunction,用来保存进入了哪个页面的信息import * as services from '@/services/api';import { me..原创 2021-04-07 14:59:09 · 766 阅读 · 0 评论