- 博客(47)
- 收藏
- 关注
原创 Cookie Domain设置错误引发的单点登录死循环问题
问题现象在业务系统B登录之后,打开B系统的一个内嵌iframe页面page1,page1需要访问业务系统A/create接口,屏幕出现一片白色,跟踪chrome network发现请求截图如下:可以发现,浏览器在不断的访问A/create接口,然后访问passport/serviceLogin接口,然后访问A/sts接口,然后再次访问A/create,再次访问passport/service...
2019-12-10 21:50:52
827
原创 hashmap原理解析
扩容机制何时扩容当元素个数size>threshold=cap*loadFactorsize指的是key value的元素个数, cap指hashmap的table数组的长度(不包括链表),loadFactor指负载因子,默认0.75扩容关键参数cap,threshold,size默认初始大小16,负载因子0.75capthresholdsize...
2018-10-30 23:44:14
272
原创 mybatis批量更新导致cpu100%
1.1 线上问题的表现:cpu间歇性的100%1.2问题定位:线程dump当时准备用top -p pid -H,来查看哪个jvm进程中那个线程占用的cpu最高的时候,发现cpu已经降下去了,所以没办法定位是哪个线程占用cpu最高.在线程dump文件中全文搜索业务包名称,意外的发现只有如下这个代码是业务系统开发人员自己写的代码:*.*ExtService.publish(java.lang...
2018-10-29 20:02:46
1765
原创 mybatis空字符串和0相比为true
and field=#{field}mybatis中经常会用这种写法,这种写法一般都说,field是String类型.如果field在接口层是一个Integer(之所以是Integer,是历史代码不规范),并且是0的话,这个if条件是true 还是 false呢?咋一看,感觉应该是true,因为0!=null && 0!='',但是实际上这个是false.这个场景下,my...
2018-10-23 17:46:47
1356
原创 MAT分析线上问题实战
MAT下载1.1 下载地址: http://www.eclipse.org/mat/downloads.php注意:linux系统根据需求选择Linux (x86/GTK+)(32位)或者Linux (x86_64/GTK+)(64位).1.2 安装不用安装,把压缩包解压之后,可以直接执行MemoryAnalyzer 这个文件可以双击执行.1.3 配置编辑文件MemoryA...
2018-10-23 17:33:19
998
转载 springboot jar war
转载自 https://www.cnblogs.com/zlw-xf/p/7828359.htmlspringboot打Jar包和War包一:打JAR包在工程的pom.xml中添加以下依赖 <plugin> <groupId>org.springframework.boot&a
2018-10-09 22:01:57
213
原创 xss脚本攻击
1.案例一 var id = '${id}';id=123456%27%3balert(1)%2f%2f945 id=123456’;alert(1)//945 如果alert(1)换成其他脚本,这个脚本就有执行的机会.修复方式:
2018-07-09 16:12:39
273
原创 mysql数据库表结构拷贝到word列表
show full columns from user; (table_name)选中自己需要的列(比如Field,Type,Null,Comment),右键->copy as->Tab Separated value(Field Name and data),点击后这些列就拷贝到剪切板里了.打开一个新的excel,直接粘贴,粘贴的时候,会有个文本导入的弹出框,在弹出框里选择分隔符为制表符,...
2018-04-19 11:40:55
4627
原创 spring_动态代理
下载动态代理生成的类并保存到本地的几种方法: 1. 修改代码,设置属性: System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, “D:\class”); –该设置用于输出cglib动态代理产生的类 System.getProperties().put(“sun.misc.ProxyGenerator.saveGen...
2018-03-31 14:51:10
351
原创 分布式锁
1.安装 sudo apt-get install redis-server 2.安装完自动启动,查看启动进程: ps aux | grep redis 3.客户端连接redis: redis-cli -p 6379 (6379是默认启动端口,redis-cli如果提示命令不存在,需要安装) 4.输入info,可以查看redis服务相关信息 5.关闭: /etc/init.d/redis-s
2018-03-03 18:24:13
186
原创 IDEA maven避坑整理
1.使用IDEA 时候如果不小心去掉了某个maven module,在本地jetty:run的时候会提示jar包中没有pom: The POM for * is missing, no dependency information available. 修复方法: file->settings->maven->ignored files,去掉忽略的module的文件前面的对勾保存即可.2.
2017-10-31 16:20:33
2086
原创 git
基础命令 1.1分支管理 git branch -a 查看所有分支(包括远程分支) git branch 查看本地分支 git branch -r 查看远程分支 git branch branchName 在本地创建分支 git branch -d branchName 删除本地分支 git branch -vv 查看本地分支以及其追踪的远程分支 git push ...
2017-08-31 21:39:51
402
原创 mysql状态监控
show status;可以查看当前mysql连接数、主从、binlog、数据库锁等信息;查看当前连接数相关的信息,其中Threads_connected代表当前连接数 show status where Variable_name like ‘%connect%’;展示当前mysql进程列表,不支持过滤 show PROCESSLIST ; (前100) show full PROCESSL
2017-07-04 15:18:31
381
原创 jdk的bin目录工具使用
进入jdk的bin目录下执行以下命令 堆内存dump ./jmap -dump:format=b,file=fileName pid 栈dump ./jstack pid > fileName统计jvm 内存使用信息: 比较常用的是jstat -gcutil pid 间隔时间(ms) http://docs.oracle.com/javase/1.5.0/docs/tool...
2017-06-08 10:21:34
892
原创 java并发编程实战读书笔记
一.读书计划 2017-04-19~2017-05-20读完 2017-04-19~2017-04-26 第一部分 2017-04-27~2017-05-04 第二部分 2017-05-05~2017-05-12 第三部分 2017-05-13~2017-05-20 第四部分二.第一部分 2.1 第一章
2017-04-19 13:39:35
627
原创 http post请求的content-type决定数据提取方式
content-type常用的主要是以下三大类 application/x-www-form-urlencoded:窗体数据被编码为名称/值对。这是标准的编码格式。这是默认的方式,可以通过request.getParameter(“key”)提取出参数值multipart/form-data:窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。二进制数据传输方式,主要用于上传文件text
2017-02-17 14:55:03
7523
原创 数据库事务
数据库事务 * 数据库事务定义 * 数据库事务是一个或一组sql操作序列的集合,这个集合里的操作要么全部成功,要么全部失败;有些业务(比如银行转账)必须使用事务控制,才能满足应用需求。事务的四大特性是原子性、一致性、隔离性、持久性,任何数据库的事务实现机制都必须保证这四个特性,简称ACID。 * 数据库特性 * 原子性 * 事务的原子性指的是事务内的操作序列
2017-02-16 15:44:28
292
原创 mysql添加列和索引
mysql添加列 alter table to_o2o_point_record add COLUMN channel VARCHAR(64) NULL DEFAULT NULL COMMENT ‘积分渠道’; alter table to_o2o_point_record add COLUMN channel VARCHAR(64) NULL DEFAULT NULL COMMENT ‘积分渠
2017-02-16 15:43:49
3910
原创 mysql慢查询
mysql配置慢日志 在my.ini(windows)或者my.cnf(linux)配置文件中配置输出慢查询日志,并将未使用索引的查询输出。slow-querylog-slow-queries=”C:/ProgramData/MySQL/MySQL Server 5.5/data/log/slow-query.log” long_query_time=1 log-queries-not-usi
2017-02-16 15:40:44
277
转载 binlog数据库恢复技术
binlog数据库恢复binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Repl
2017-02-16 15:36:35
606
原创 eclispe无法获取maven依赖的本地项目jar包
有一个工程wechat-standard,工程有五个模块,其中两个模块是wechat-standard-common(打包成jar),wechat-standard-admin(打包成war).wechat-satndard-admin依赖于wechat-standard-common。编译打包后,在eclispe中用jetty插件运行wechat-standard-admin项目,有如下报错:WA
2017-02-13 18:34:46
3823
原创 获取openId流程图
url2,用户授权获取code,这个code会跟在redirect_uri=url1后面,有用户发送到业务系统,业务系统拿到code后,可以获取用户openId. https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SC
2017-02-08 14:47:58
3857
原创 odps命令
数据传输: tunnel download test_project.test_table/p1=”b1”,p2=”b2” test_table.txt;表查看所有表:list tables;查看表字段: desc tableName;删除表: drop table if exists tableName;复制表结构: create table if not exists table_n
2017-02-08 14:43:10
16782
原创 getVSpost
字段英文名,字段英文名,由字母、数字、下划线组成。 中文名,字段中文简称。 字段类型,ODPS数据类型(string、bigint、double、datetime、boolean)。 描述,字段详细描述。 设置权限,即支持字段权限分级,0~9表示权限等级由低到高,不设置则默认为0,表示最低权限等级。 操作,上移、下移、保存、编辑、删除。 是否设置分区,若选择设置分区,需配置分区键的具体信
2017-02-08 14:42:42
269
翻译 redis常见命令
启动关闭 启动 /usr/sbin/redis-server /etc/redis.conf连接 redis-cli -h redis_server_ip关闭 进入redis-cli后可以输入shutdown命令关闭redis服务查看redis进程 ps aux | grep redis查看redis状态 info命令查看redis的连接数、当前内存、cpu等的使用
2017-02-08 14:40:25
255
原创 xshell文件上传下载
Xshell 新建文件传输FTP后的命令get 下载put 上传lcd 获取当前本地机器路径Linux 自带命令,有时需要安装rz 上传sz 文件或文件夹 下载
2017-02-08 14:37:02
1586
原创 nohup
nohup python -u xxx.py > nohup.log 2>&1 &python -u代表启用缓冲 省略 1> nohup.log,代表将标准输出重定向到nohup.log这个文件 2>&1代表将标准错误重定向到标准输出 &代表后台运行
2017-02-08 14:35:32
247
原创 基础命令
查看Linux版本 lsb_release -a查询安装包rpm -qa | grep vim : rpm -qa是搜索所有的安装包,整体的意思是在所有安装包中检索vim安装包yum search * 从yum源中搜索安装包,可以配置yum源为本地和远程。yum -y install vim* 用yum的方式自动下载和安装软件,vim加连续两次Tab键可以显示vim命令是否可用命令+tab
2017-02-08 14:35:00
231
原创 window&linux查看MD5
windowcertutil -hashfile yourfilename.ext MD5certutil -hashfile yourfilename.ext SHA1certutil -hashfile yourfilename.ext SHA256linuxmd5sum filename
2017-02-08 14:34:21
1415
原创 crontab
crontab命令 crontab -lcrontab任务的配置文件 /var/spool/cron 修改了/var/spool/cron下的cron配置文件,crontab会自动reload这个文件crontab调度日志 /var/log/cron 可查看crontab运行情况
2017-02-08 14:33:23
211
原创 shell编程
休眠 sleep 1 or sleep 1s; sleep 1m; sleep 1d;变量拼接字符串 a=123; b=astr;其中{a}str;其中{a}不能写成a,否则b=a,否则b=astr,会去找astr这个变量的值打印时间 echo (date+(date +%d-%m-%y) ; echo "(date)”;
2017-02-08 14:32:58
217
原创 文件grep
grep “text” file grep “abc” /a.txtgrep “text” dir grep -rn “abc” /data/var/星号/星号.log -rn 代表搜索所有目录和文件夹(r)以及显示行号(n) 第一个星号代表该所有文件夹下的所有文件夹 第二个星号代表所有以log结尾的文件
2017-02-08 14:32:27
331
原创 磁盘命令
磁盘命令 df 查看一级目录的磁盘占用情况du 查看文件夹或者文件的磁盘占用 du -ah /test test目录下文件夹和文件的占用情况 du -sh /test 查看test文件夹的总大小 du -h /test –max-depth=1 查看test目录的各个一级子目录的总大小 du -ah /test –max-depth=1 查看test目录的各个一级子目录和文件的大小以
2017-02-08 14:31:48
265
原创 文件和内容搜索
find searchPath -name “fileName” find ./ -name “conf” 搜索文件名字带conf的文件 grep searchKey file/dir grep “8080” ./server.xml 在server.xml文件中搜索8080字符串
2017-02-08 14:30:30
239
原创 java反射
#bk1 {background-color: yellow} * 什么是反射 * 在运行期,可以动态的获取类的信息,创建类的对象以及执行类的方法,获取类的属性的值等等。Class类Class类的对象保存了类的运行时信息,每个Class类对象对应一个类的运行时信息。获取Class对象的方法有以下三种:Class clazz=Class.forName(String className)
2017-02-08 14:28:07
198
翻译 junit单元测试之道
#bk1 {background-color: yellow} * 单元测试的定义和意义 * 单元测试是程序员自己编写的一段代码,用于验证被测试代码是否能达到预期的效果,通过所有的测试用例。如果单元测试能比较早的发现被广泛依赖的代码存在的潜在错误,尽早修复,将会缩短问题定位和调试的成本。单元测试可以验证被测试代码的正确性,当代码发生修改时,也可以自动的完成回归测试。 * 单元测试组成部分
2017-02-08 14:22:34
451
原创 web容器
定义web容器就是servlet容器,常用的包括tomcat、jetty、weblogic、jboss等等,web app项目中的servlet必须是基于javax.servlet.servlet接口实现的,才能被servlet容器识别,调用。servlet容器和servlet能集成在一起,因为二者都是遵循servlet规范的。常用对象listener、filter、servlet,三者均需要在w
2017-02-08 14:11:37
555
转载 eclipse_tomcat操作技巧
tomcat 调试超时: window->show view->server,双击server下的服务器,设置Timeout解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法 建立好一个Maven项目后,如果Java Resources资源文件下没有src/main/java文件夹,并且在手动创建这个文件时提示“已存在文件”。 这说明,在这个项目配
2017-02-08 14:10:06
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人