自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

转载 AES 128位CBC加密解密,IV不固定

安全检查时要求账号和密码加密后才能存到数据库中,要求加密算法如下:1)分组密码算法:AES(密钥长度在128位及以上)(GCM或CBC模式)2)流密码算法:AES(密钥长度在128位及以上)(OFB或CTR模式)、chacha203)非对称加密算法:RSA(2048位及以上)、ECC(256位以上)4)哈希算法:SHA2、SHA35)密钥交换算法:DSA/DH(密钥长度2048位及以上)、ECDH(密钥长度223及以上)6)HMAC(基于哈希的消息验证码)算法:HMAC-SHA2因此将原来普

2020-08-10 14:20:51 4013

原创 java.io.EOFException: Can not read response from server. Expected to read 4 bytes

查看后台kibana日志,发现访问数据库偶尔会出现异常:网上有很多类似的案例,查了下,原因如下:经过查询,应该是连接池的连接一段时间没有活动筋骨,mysql服务端会单方面断开这个连接。客户端继续使用这个僵尸连接就会出错。查看mysql实例的配置my.cnf,其中wait-timeout参数设置为20秒,由于新上线还没多少客户使用,所以这个设置对于这种不活跃的场景太短了。直接删除这个...

2020-02-13 11:52:27 13476

原创 git出问题的时候,这些命令可能能帮到你

Git 强制回退到某个版本 git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 Git 强制提交 git push -f -u origin branch Git Stash Git stash show -p stash@{0} git stash list ...

2020-01-16 21:29:37 352

原创 更加高效便捷的终端体验!!Oh my zsh+iTerm2

写在前面最终效果图:ImageInitIterm本文严重抄袭自:https://www.jianshu.com/p/9c3439cc3bdb因排版和原文中的一些bug,参照搜索引擎和原文有了本篇文章。需要注意的是,如果您经常有使用command +来放大字体,那么这个主题可能会产生样式上兼容性的问题。可以只安装oh my zsh,后面的步骤都忽略掉(当然也没有这样的样式了)。...

2020-01-02 16:37:17 374

转载 定时任务的配置规则

一个定时任务表达式有5、6、7个组成,由空格分隔的时间元素。****************************************分隔符****重要内容已标红****从左至右,七位元素的含义如下:0 15 10 * * ? *1.秒(0–59)2.分钟(0–59)3.小时(0–23)4.月份中的日期(1–31)5.月份(1–12或JAN–DEC)6.星期中的日期...

2019-09-11 20:33:38 1842

转载 图数据库比较

2019-08-04 20:09:46 179

原创 拦截器、过滤器、Aspect区别?看这一篇就够了!

通俗易懂的解释:过滤器:像滤网一样,肯定是用来过滤东西的,比如,三个请求只放行两个。拦截器:拦而不截,都可以过,但是要过去的东西做点操作,比如,三个请求都放行。具体区别: 过滤器 拦截器 Aspect 关注的点 所有web请求 部分web请求 偏向于业务层面的拦截 实现原理 函数回调 JAVA反射机制(动态代理) 动态...

2019-06-12 17:10:51 3290

原创 海量文件处理-HASH分割文件与布隆过滤器(BloomFilter)实现

用hash法分割文件实现https://blog.csdn.net/qingdujun/article/details/82343756用布隆过滤器(bloomFilter)实现https://blog.csdn.net/fouy_yun/article/details/81075432

2019-06-11 17:27:14 807

原创 nginx负载均衡详细配置+keepalived保活机制配置

https://www.cnblogs.com/wang-meng/p/5861174.html

2019-05-12 23:40:35 1143

转载 索引失效的几种情况

1、 最好全值匹配——索引怎么建我怎么用分析三次查询均使用到索引。2、 最佳左前缀法则——如果索引了多列,要遵守最左前缀法则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。分析:前提条件: 表中已添加复合索引name,age,pos 第一次执行缺少name,查询条件复合索引最左侧name缺少,违反了最佳左前缀法则,导致索引失效,变为ALL,全表扫描。 同...

2019-05-10 16:53:20 8251 2

转载 常用JAVA设计模式--装饰者模式

要实现装饰者模式,注意一下几点内容:1.装饰者类要实现真实类同样的接口2.装饰者类内有一个真实对象的引用(可以通过装饰者类的构造器传入)3.装饰类对象在主类中接受请求,将请求发送给真实的对象(相当于已经将引用传递到了装饰类的真实对象)4.装饰者可以在传入真实对象后,增加一些附加功能(因为装饰对象和真实对象都有同样的方法,装饰对象可以添加一定操作在调用真实对象的方法,或者先调用真实对...

2019-05-03 00:30:21 195

原创 mysql中explain的type的解释以及常见索引失效的情况

导语:很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我们小白好好学习,天天向上,还是很靠谱的。当一个sql查询语句被写出来之后,其实你的工作只完成了一小半,接下来更重要的工作是评估你自己写的sql的质量与效率。mysql为我们提供了很有用的辅助...

2019-04-16 15:55:31 7101 1

原创 JAVA线上排查问题的利器--Arthas

Java诊断工具Arthas1. Arthas简介Arthas是阿里开源的一个线上java诊断工具,发现阿里还是挺喜欢开源一些技术的,造福人类。昨天试用了一下,发现真是强大,解决了我工作两年的很多困扰,有点相见恨晚的感觉。根据官网的说明,它能解决下面的问题:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是...

2019-03-27 14:06:15 543

原创 mybatis批量更新数据三种方法效率对比

探讨批量更新数据三种写法的效率问题。实现方式有三种,一种用for循环通过循环传过来的参数集合,循环出N条sql,另一种 用mysql的case when 条件判断变相的进行批量更新 还有一个是用ON DUPLICATE KEY UPDATE进行批量更新下面进行实现。注意第一种方法要想成功,需要在db链接url后面带一个参数 &allowMultiQueries=...

2019-03-19 18:44:02 165878 27

原创 Junit测试Controller(MockMVC使用),以及JUnit Generator使用方法

一、单元测试的目的  简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作。以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现。  这里主要是使用MockMvc对我们的系统的Controller进行单元测试。  对数据库的操作使用事务实现回滚,及对数据库的增删改方法结束后将会还远数...

2019-03-12 14:03:14 4749

原创 关于java 单元测试Junit4和Mock的一些总结

最近项目有在写java代码的单元测试,然后在思考一个问题,为什么要写单元测试??单元测试写了有什么用??百度了一圈,如下:软件质量最简单、最有效的保证; 是目标代码最清晰、最有效的文档; 可以优化目标代码的设计; 是代码重构的保障; 是回归测试和持续集成的基石。由于开发经验有限,可能说的不太对,但是是我目前的个人的观点,写单元测试,有时候确实可以发现bug,但是发现bug次数很少,而...

2019-03-11 16:43:39 1010

原创 如何设计一个高并发系统

目录(1)一道面试题的背景引入(2)先考虑一个最简单的系统架构(3)系统集群化部署(4)数据库分库分表 + 读写分离(5)缓存集群引入(6)引入消息中间件集群(7)现在能hold住高并发面试题了吗?(8)本文能带给你什么启发?(1)一道面试题的背景引入这篇文章,我们聊聊大量同学问我的一个问题,面试的时候被问到一个让人特别手足无措的问题:你的系统如...

2019-03-07 17:28:58 398

原创 idea中SQL语句提示SQL Dialect is Not Configured

idea中SQL语句经常提示SQL Dialect is Not Configured,主要是我们没有配置数据库在File---->Setting--->Languages & Frameworks--->SQL Dialects中,选择对应的数据库,如MySQL,之后点击保存即可。这样的一个好处还有一个,就是idea直接可以识别你数据库中的字段了,按着c...

2019-03-01 16:20:27 16620 2

转载 解决Mybatis的Tag name expected的问题

mapper文件中写sql语句时提示Tag name expected,找到原因是因为xml不识别<号需要用特定转义符来表示<号。<select id="selectHavingOrtherResultNotYetProcessed" resultMap="BaseResultMap" > select <include refid="Base...

2019-01-31 11:21:25 49812 10

转载 idea Git解决冲突 git pull失败解决(好文推荐)

0.事先准备。1)把远程仓库的README.md内容改写为bbb(原先为aaa)。2)本地仓库的README.md内容改写为ccc(原先也为aaa)。以此来模仿代码冲突。1.先git add,git commit 然后pullpull的时候会提示有冲突,需要你进行手动mergeAccept Yours 就是直接选取本地的代码,覆盖掉远程仓库的Accept T...

2019-01-29 16:12:58 5776

转载 @Component, @Repository, @Service的区别 @Resource,@Autowired的区别

官网引用引用spring的官方文档中的一段描述:在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常在Spring2.5版本中,引入了更多的Spring类注解:@Component,@Service,@Controller。@Component是一个通用的Sprin...

2019-01-23 10:14:15 2843

原创 常见数据库问题(各种丢人场景。。。)

1. you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) VALUES ('1444411','2255522')' at line 1MySQL表中不能包含关键字啊...

2018-12-21 17:57:07 246

转载 sourcetree跳过注册的方法

当前只有Win的版本,Mac自行百度(笑)很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者操作注册。废话不多,我们直接开始跳过注册阶段的操作。下载好之后会有这么一个界面要求你注册或登录。(不管它)将下面的一串串放进我的电脑的地址栏,打开sourcetree的文件夹%Loc...

2018-12-20 22:55:27 170

转载 linux下安装Git教程(超详细)

本文旨在讲述如何在linux上安装最新版的git。 1、查看当前git版本:git --version查看最新版git:访问https://www.kernel.org/pub/software/scm/git/或者https://github.com/git/git/releases2、官网下载:wget https://Github.com/Git/Git/archiv...

2018-12-12 14:16:28 360

原创 jenkins安装配置实现自动集成打包部署(Tomcat,jetty,maven,git)(二)

三、部署(从创建任务开始)再进行该步骤之前,请务必保证之前的jenkins安装已经相关的公共配置操作已经完成。具体参考博客:jenkins安装配置实现自动化部署(Tomcat,jetty,maven,git)(一)新建任务输入任务名称,选择构建一个maven项目配置Git下面是Add Git账户的界面Maven打包的配置通过SSH发布,构建后...

2018-12-07 16:00:52 597

原创 jenkins安装配置实现自动继承打包部署(Tomcat,jetty,maven,git)(一)

一、安装1.1 安装清单1.JDK2.jenkins&Tomcat3.maven4.git1.2 JDK 安装// 安装jdk [root@svn local]# rpm -ivh jdk-8u77-linux-x64.rpm//配置环境变量[root@svn local]# cat /etc/profile.d/jdk.sh export...

2018-12-07 13:34:30 451

原创 jetty启动配置JVM参数

cd到start.jar所在目录,jetty的webapps的父目录运行命令java -jar start.jar --add-to-start=jvm这个命令会帮你在start.ini里面加上一些JVM默认配置参数(注释状态),然后你想用哪些参数,把相关的注释取消掉就好了。注意:记得把--exec这个参数取消注释,官方解释是想要在ini文件里面加JVM参数配置,就要加上--e...

2018-12-07 10:45:45 7545

原创 Linux查看系统版本信息

   Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。   1、uname -a   (Linux查看版本当前操作系统内核信息)    2、cat /proc/version (Linux查看当前操作系统版本信息)     3、cat /etc/issue  或cat /etc/re...

2018-12-03 14:22:30 180

原创 微信抢红包算法实现(JAVA)

简介网上说的有两种比较公平的算法,一种是二倍均值法,一种是线段切割法。下面我们介绍下两种算法的实现:二倍均值法原理剩余红包金额M,剩余人数N,那么:每次抢到金额=随机(0,M/N*2)保证了每次随机金额的平均值是公平的假设10人,红包金额100元第一人:100/10*2=20,随机范围(0,20),平均可以抢到10元第二人:90/9*2=20,随机范围(0,20),平均可以...

2018-11-30 17:16:03 6370 3

原创 注册腾讯云域名绑定服务器

申请的国外服务器对我们自己来说,其实一个IP很好记,但是想让别的访问网站的人的话,一个好记的域名还是很有必要的。而且在国内注册域名方便搜索引擎搜索,尤其是自己的博客。进入腾讯云网站购买域名,地址:https://cloud.tencent.com/act/domainsales?from=dt一般选择com后缀的域名,新户注册可享受大优惠,当然如果不是新户的话,选择全民普惠的即可。点击想买...

2018-11-14 15:53:30 851

转载 BIO、NIO和AIO的区别、具体实现

一:理解同步:同步就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回,但是一旦调用返回,就得到返回值了。简单的为:就是由*调用者*主动等待这个*调用*的结果。二:异步:*调用*在发出之后,这个调用就直接返回了,所以没有返回结果;换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。...

2018-09-25 17:08:43 402

原创 论性能优化措施(JAVA)

一 前端性能优化1.页面的HTTP请求数量2.使用CDN网络3.是否使用压缩,对于前段样式文件与脚本文件,可将其中空格、注释等不必要的字符去掉,并且通过使用gzip压缩来减少网络上传输的字节数。二 java程序优化1.使用单例,如饿汉2.future编程3.线程池。明明是多核CPU,但程序中却是用单线程串行操作,这种情况下可以将原来的串行操作改成多线程并发,以提高执行效...

2018-09-23 17:12:27 230

转载 正向代理和反向代理的区别图示

正向代理与反向代理【总结】原文地址:https://www.cnblogs.com/Anker/p/6056540.html1、前言  最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习。而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需要在浏览器中配置代理的地址。我只知道有代理这个概念,并不清楚代理还有正向和反向之分,于是赶紧学习一...

2018-09-15 14:58:38 2212

转载 MAVEN的生命周期

我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的过程。Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:•    CleanLif...

2018-09-13 17:31:27 476

原创 java内存报错error及相关解决办法

Java代码导致OutOfMemoryError错误的解决:需要重点排查以下几点:检查代码中是否有死循环或递归调用。 检查是否有大循环重复产生新对象实体。 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于...

2018-09-13 14:12:19 510

原创 高级程序员(JAVA)必知必会二(问题+答案)

1.业务介绍,场景描述,负责模块2.数据库隔离级别,分别会避免什么样的错误,默认隔离级别。read_uncommited,read_commited,repeatable_read,serializable_read,脏读,可重复读,幻读3.IOC的原理对象实例化的工作从开发者转移到容器。applicationContext常用接口哪些,都有什么作用。MessageSour...

2018-09-07 14:35:49 4339

转载 applicationContext

ApplicationContext    ApplicationContext接口使BeanFactory的子接口,代表一个应用的上下文环境。  ApplicationContext扩展了很多使用的功能,如    Bean的生命周期管理     框架事件体系     国际化支持等  同时,ApplicationContext接口还通过继承其他接口扩展了BeanFactory的功...

2018-09-07 14:24:56 131

原创 高级程序员(JAVA)面试必知必会(问题+答案)

高级程序员(JAVA)面试必知必会(问题+答案)----二https://blog.csdn.net/q957967519/article/details/824919571、常用设计模式 单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 代理模式:动态代理和静态代理,什么时候使用动态代理。 h...

2018-09-06 11:17:03 17055

原创 IDEA解决maven中jar包冲突

前言        我相信,来到这里的你一定曾经被maven的jar包冲突困扰过。现在,阿福带着你使用IDEA彻底结局后顾之忧!工具        众所周知,IDEA为我们提供了maven视图,让我们首先切换到这个视图!        看到如下的样子你已经成功了一半!接下来,在你想要分析的模块上右键选择show Dependencies,当然,快捷键是有的!ctrl+alt+s...

2018-09-06 09:47:29 2333

原创 mysql日志类型以及作用

一、日志的分类1、错误日志:记录了mysql服务的启动,关闭和运行时发生的错误;2、通用查询日志:记录用户的所有操作,包括启动、关闭服务,插入、查询等语句;3、二进制日志:以二进制的形式记录了数据库中的操作,但不记录查询语句;4、慢日志:记录了mysql 所有查询超时的语句 二、日志设置1、除了二进制日志,其他都是文本文件2、日志文件通常存储在Mysql数据目录下3、...

2018-09-05 11:38:15 560

阿里开发规范.pdf

阿里巴巴编码规范最新版文档,里面是当前java开发最新的规范和要求,有需要可以自行下载

2019-09-17

webmagic实现CSDN博客抓取并打印

一个基于webmagic的爬虫框架,实现了对CSDN的博客抓取并打印

2018-08-22

空空如也

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

TA关注的人

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