自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

StayHungry

记录编程技术学习历程

  • 博客(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 779

原创 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 210

原创 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 1567

原创 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 1268

原创 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 939

转载 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 178

原创 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 228

原创 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 4525

原创 spring_动态代理

下载动态代理生成的类并保存到本地的几种方法: 1. 修改代码,设置属性: System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, “D:\class”); –该设置用于输出cglib动态代理产生的类 System.getProperties().put(“sun.misc.ProxyGenerator.saveGen...

2018-03-31 14:51:10 313

原创 nc文件传输

nc -lp 1234 > ddd.dmp

2018-03-08 19:44:05 2460

原创 分布式锁

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 153

原创 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 1862

原创 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 372

原创 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 336

原创 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 831

原创 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 575

原创 http post请求的content-type决定数据提取方式

content-type常用的主要是以下三大类 application/x-www-form-urlencoded:窗体数据被编码为名称/值对。这是标准的编码格式。这是默认的方式,可以通过request.getParameter(“key”)提取出参数值multipart/form-data:窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。二进制数据传输方式,主要用于上传文件text

2017-02-17 14:55:03 7467

原创 数据库事务

数据库事务 * 数据库事务定义 * 数据库事务是一个或一组sql操作序列的集合,这个集合里的操作要么全部成功,要么全部失败;有些业务(比如银行转账)必须使用事务控制,才能满足应用需求。事务的四大特性是原子性、一致性、隔离性、持久性,任何数据库的事务实现机制都必须保证这四个特性,简称ACID。 * 数据库特性 * 原子性 * 事务的原子性指的是事务内的操作序列

2017-02-16 15:44:28 263

原创 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 3826

原创 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 247

转载 binlog数据库恢复技术

binlog数据库恢复binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景: 其一:MySQL Repl

2017-02-16 15:36:35 539

原创 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 3758

原创 获取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 3748

原创 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 16353

原创 getVSpost

字段英文名,字段英文名,由字母、数字、下划线组成。 中文名,字段中文简称。 字段类型,ODPS数据类型(string、bigint、double、datetime、boolean)。 描述,字段详细描述。 设置权限,即支持字段权限分级,0~9表示权限等级由低到高,不设置则默认为0,表示最低权限等级。 操作,上移、下移、保存、编辑、删除。 是否设置分区,若选择设置分区,需配置分区键的具体信

2017-02-08 14:42:42 245

翻译 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 234

原创 xshell文件上传下载

Xshell 新建文件传输FTP后的命令get 下载put 上传lcd 获取当前本地机器路径Linux 自带命令,有时需要安装rz 上传sz 文件或文件夹 下载

2017-02-08 14:37:02 1540

原创 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 223

原创 基础命令

查看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 203

原创 window&linux查看MD5

windowcertutil -hashfile yourfilename.ext MD5certutil -hashfile yourfilename.ext SHA1certutil -hashfile yourfilename.ext SHA256linuxmd5sum filename

2017-02-08 14:34:21 1372

原创 crontab

crontab命令 crontab -lcrontab任务的配置文件 /var/spool/cron 修改了/var/spool/cron下的cron配置文件,crontab会自动reload这个文件crontab调度日志 /var/log/cron 可查看crontab运行情况

2017-02-08 14:33:23 190

原创 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 193

原创 文件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 277

原创 磁盘命令

磁盘命令 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 225

原创 进程管理

topps aux | grep java端口占用:netstat -anp | grep 664

2017-02-08 14:31:21 203

原创 文件和内容搜索

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 211

原创 java反射

#bk1 {background-color: yellow} * 什么是反射 * 在运行期,可以动态的获取类的信息,创建类的对象以及执行类的方法,获取类的属性的值等等。Class类Class类的对象保存了类的运行时信息,每个Class类对象对应一个类的运行时信息。获取Class对象的方法有以下三种:Class clazz=Class.forName(String className)

2017-02-08 14:28:07 171

翻译 junit单元测试之道

#bk1 {background-color: yellow} * 单元测试的定义和意义 * 单元测试是程序员自己编写的一段代码,用于验证被测试代码是否能达到预期的效果,通过所有的测试用例。如果单元测试能比较早的发现被广泛依赖的代码存在的潜在错误,尽早修复,将会缩短问题定位和调试的成本。单元测试可以验证被测试代码的正确性,当代码发生修改时,也可以自动的完成回归测试。 * 单元测试组成部分

2017-02-08 14:22:34 420

原创 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 496

转载 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 231

空空如也

空空如也

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

TA关注的人

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