- 博客(100)
- 资源 (29)
- 收藏
- 关注
转载 优化springboot
介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢?1. 方便微服务部署。2. 方便项目启动,不需要下载Tomcat或者Jetty针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点线程数 超时时间 jvm优化针对上述的优化点来说,首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障...
2019-08-21 10:52:47
2750
8
转载 Spring MVC异常统一处理的三种方式
Spring 统一异常处理有 3 种方式,分别为:使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice 注解使用 @ ExceptionHandler 注解使用该注解有一个不好的地方就是:进行异常处理的方法必须与出错的方法在同一个Controller里面。使用如下:@Contro...
2019-08-21 10:27:51
3707
1
转载 fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话:例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检...
2019-08-21 10:27:05
1405
1
转载 springboot中ElasticSearch入门与进阶:组合查询、聚合查询
1.springboot中配置elasticSearch1.1在工程中引入相关的jar包1.1.1在build.gradle中添加需要的jar包我创建的gradle工程,对应的maven工程也是一样,添加对应的jar包即可// 添加 Spring Data Elasticsearch 的依赖compile('org.springframework.boot:spring-...
2019-08-21 10:23:14
14365
5
转载 算法的时间复杂度和空间复杂度详解
通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执...
2019-08-21 10:22:16
7584
转载 线上问题定位--CPU100%
服务器CPU突然告警,如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?步骤一、找到最耗CPU的进程工具:top方法: 执行top -d 1-c,每秒刷新一次,显示进程运行信息列表 键入P(大写p),进程按照CPU使用率排序 图示:如上图,最耗CPU的进程PID为1802步骤二:找到最耗CPU的线程工具:top...
2019-08-21 10:21:11
1261
转载 Java各种规则引擎
一. Drools规则引擎简介:Drools就是为了解决业务代码和业务规则分离的引擎。Drools 规则是在 Java 应用程序上运行的,其要执行的步骤顺序由代码确定,为了实现这一点,Drools 规则引擎将业务规则转换成执行树。特性:优点: 1、简化系统架构,优化应用 2、提高系统的可维护性和维护成本 3、方便系统的整合 4、减少编写“硬代码”业...
2019-08-21 10:15:14
26802
1
转载 【深度长文】JavaScript数组所有API全解密
全文共13k+字,系统讲解了JavaScript数组的各种特性和API。数组是一种非常重要的数据类型,它语法简单、灵活、高效。 在多数编程语言中,数组都充当着至关重要的角色,以至于很难想象没有数组的编程语言会是什么模样。特别是JavaScript,它天生的灵活性,又进一步发挥了数组的特长,丰富了数组的使用场景。可以毫不夸张地说,不深入地了解数组,不足以写JavaScript。截止ES7规范...
2019-08-21 10:10:56
825
1
转载 理解OAuth 2.0
理解OAuth 2.0作者:阮一峰原文地址:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.htmlOAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。更新:我...
2019-08-21 10:09:03
542
1
转载 使用docker搭建web服务
本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引出一些 Docker 的名词术语,比如:容器、镜像等,随后将使用 Docker 搭建一个 Java Web 运行环境,最后将对本文做一个总结。我们先来回顾一下传统虚拟化技术的体系架构:可见,我们在宿主机的操作系统上,可安装了多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,...
2019-08-21 10:07:03
1205
转载 IntelliJ IDEA 18 周岁,吐血推进珍藏已久的必装插件
IntelliJ IDEA是目前最好最强最智能的Java IDE,前几天,他刚刚年满18岁。本文,给大家推荐几款我私藏已久的,自己经常使用的,可以提升代码效率的插件。IDEA插件简介常见的IDEA插件主要有如下几类:常用工具支持Java日常开发需要接触到很多常用的工具,为了便于使用,很多工具也有IDEA插件供开发使用,其中大部分已经在IDEA中默认集成了。例如maven、...
2019-08-21 10:04:36
2022
2
原创 并发编程模式
一、future模式在网上购物时,提交订单后,在收货的这段时间里无需一直在家里等候,可以先干别的事情。类推到程序设计中时,当提交请求时,期望得到答复时,如果这个答复可能很慢。传统的是一直等待到这个答复收到时再去做别的事情,但如果利用Future设计模式就无需等待答复的到来,在等待答复的过程中可以干其他事情。future模式核心思想就是异步调用,去除了主函数的等待时间,并使得原本需要等待的时...
2019-07-31 20:12:05
6396
2
原创 shell编程
一、简介Shell脚本语言是Linux/Unix系统上一种重要的脚本语言,在Linux/Unix领域应用极为广泛,利用Shell脚本语言可以简洁地实现复杂的操作,而且Shell脚本程序往往可以在不同版本的Linux/Unix系统上通用。Shell脚本语言简单、易学、易用,适合处理文件和目录之类的对象,以简单的方式快速完成某些复杂的事情通常是创建脚本的重要原则。二、基本格式Shell脚本...
2019-07-31 20:10:18
2046
6
原创 M3U8 Downloader的使用
M3U8 Downloader 是一款专门下载 M3U8 格式的在线视频的工具,并且还附带视频转换和视频合并小工具。M3U8 Downloader开发背景HLS (HTTP Live Streaming)是苹果公司实现的基于 HTTP 的流媒体协议,可以实现流媒体的点播和直播播放,主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件、TS媒体分片文件和key加密串文件。...
2019-07-31 19:43:24
37964
1
原创 jenkins+gogs实现自动构建maven项目
本文基于《jenkins构建maven项目》,在此之上增加自动构建。直接进入主题。我这边的git仓库使用的是搭建在内网的gogs,所以想实现当代码push到git上后就立即自动构建打包该项目,就需要在jenkins上安装gogs的插件。Jenkins安装Gogs插件打开 系统管理 -> 管理插件 -> 可选插件 ,在右上角的输入框中输入“gogs”来筛选插件:...
2019-07-31 19:43:20
2949
1
原创 mysql按照汉字拼音排序
项目中有时候会遇到需要按照汉字拼音排序的需求。如果要排序的字段编码使用的是GBK字符集,那就可以直接按照拼音排序。因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了),直接在查询语句后面添加ORDER BYname ASC,查询结果将按照姓氏的升序排序。如果存储姓名的字段采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是...
2019-07-31 19:43:16
13526
1
原创 jenkins构建maven项目
省略jenkins的安装,我这边是使用jenkins docker镜像启动的容器。1、配置环境进入系统管理->全局工具配置首先需要配置的是jdk、maven、git。我在docker中已经安装了jdk、maven、git,所以JAVA_HOME就直接填写jdk路径,Maven_HOME填写maven路径,Path to Git executable填写git执行路径。...
2019-07-31 19:43:07
5543
3
转载 取代cookie的网站追踪技术:"帆布指纹识别"
【前言】一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动。Cookie技术是非常受欢迎的一种。当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中永久植入一个含有唯一标示符(UUID)的信息,并通过这个信息将用户所有行为(浏览了哪些页面?搜索了哪些...
2019-07-31 19:42:49
1339
原创 git fetch和git pull的区别
1. git fetchgit fetch相当于是从远程获取最新到本地,不会自动merge,如下指令:git fetch orgin master //将远程仓库的master分支下载到本地当前branch中git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别git merge origin/mas...
2019-07-31 19:42:01
2109
1
原创 maven deploy上传jar包到nexus错误排查
Returncodeis:500最近在项目中使用maven-deploy上传jar包时出现[ERROR]Failedtoexecutegoalorg.apache.maven.plugins:maven-deploy-plugin:2.7:deploy(default-deploy)onprojectwenwo-platform-parent:Failedto...
2019-07-31 19:41:52
10436
4
原创 Redis作为缓存时的一些使用经验
redis作为NoSQL数据库,经常用作缓存,所以推荐将那些经常查询的数据存入redis中方便下次快速获取。但redis没有像关系型数据库那样拥有结构化的查询语言,如果缓存了很多数据,想从中获取满足某些条件的数据时,该如何做呢? 如果把这些海量数据从redis里拿出来,逐个遍历筛选出满足条件的数据,这肯定不可行! 可以通过在把这些海量数据存入redis时,把...
2019-07-31 19:41:41
5786
16
原创 高并发限流方案
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限...
2019-07-31 19:41:37
1904
1
原创 ElasticSearch基于RestFul的常用操作
1、创建indexPUT http://127.0.0.1:9200/my_es2{ "mappings":{ "logs":{ "properties":{ "name":{ "type":"text" }, "age":{ "type":"integer" }, "about":{ "type":"tex...
2019-07-31 19:39:37
3007
原创 Fiddler手机抓包(iPhone)
Fiddler不但能截获各种浏览器发出的HTTP/HTTPS请求,也可以截获各种移动设备(包括Andriod和IOS)发出的HTTP/HTTPS请求。最关键的是,Fiddler还可以断点调试,修改Request和Response,而且即便抓包的是IOS设备,这些操作也可以直接在Windows PC上进行,不需要非得在MAC上。一、PC上安装Fiddler官网下载地址:https://www...
2019-07-31 19:39:31
9322
1
原创 spring mvc异常统一处理(实现HandlerExceptionResolver接口)不生效的问题解决
spring mvc异常统一处理常见的有3种方式:使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice 注解详细的使用方法可参考博文:https://blog.youkuaiyun.com/yjclsx/article/details/85230404有一次在实现HandlerExceptionR...
2019-07-31 19:38:37
8013
6
原创 mysql存储过程之循环遍历查询结果集
-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除DROP PROCEDURE IF EXISTS init_reportUrl; -- 创建存储过程CREATE PROCEDURE init_reportUrl()BEGIN -- 定义变量 DECLARE s int DEFAULT 0; DECLARE report_id varchar(255); DECLAR...
2019-07-31 19:37:33
31913
19
原创 mybatis批量插入并返回主键(xml和注解两种方式)
mybatis批量插入在mysql数据库中支持批量插入,所以只要配置useGeneratedKeys和keyProperty就可以批量插入并返回主键了。比如有个表camera,里面有cameraNo,chanIndex,cameraName这三个字段,其中cameraNo是自增主键。下面是批量插入的Dao层接口:void batchInsertCameras(@Param("li...
2019-07-31 19:36:47
39551
21
原创 linux中的rz和sz命令
linux中的rz和sz命令允许开发者与主机通过串口进行传递文件,当没有安装Xftp等软件时,直接使用rz和sz命令是很方便的选择。sz fileName:运行该命令会弹出一个选择窗口,选择好保存路径后,将选定的文件发送到本机选定的目录。rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器,上传的路径是linux的当前路径,上传文件的用户和组是当前登录的用户。使用...
2019-07-31 19:36:41
1506
2
原创 spring普通类获取session和request对象
在使用spring时,经常需要在普通类中获取session、request对象。比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对象。用法:ServletActionContext.getRequest().getSession();在传统jav...
2019-07-31 19:36:27
3676
2
原创 Hibernate中的懒加载
懒加载的应用场景考虑一个简单的网络应用程序:网上书店,书店维护者产品的目录。最原始的方法,它可以投射到一个模型实体中去用来管理一系列的产品实体。在一个大的书店中,会有成千上万的产品划分成不同的目录。当一个用户访问这个书店的时候,目录必须要从数据库中加载,我们很可能不想要加载每一个实体到内存中去。对于一个大型的零售商,考虑到物理内存把这个大量的数据加载到机器中或许不可能,即使这是可能的,它也会削...
2019-07-31 19:36:04
695
1
原创 synchronized关键字的使用
synchronized关键字是java并发编程中常使用的同步锁,用于锁住方法或者代码块,锁代码块时可以是synchronized(this){}、synchronized(Object){}、synchronized(类class){}。当锁住的内容执行完或者在执行过程中抛出异常,才会自动释放锁。如果想手动释放锁,需要调用锁住的对象的wait()方法释放掉锁并且置于等待状态,切换到其他线程运...
2019-07-31 19:34:24
8790
13
转载 Java获取客户端用户真实IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn / 的URL...
2019-07-31 19:34:08
17013
6
原创 mybatis拦截器
一、前言拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,或者丢弃这些被拦截的方法而执行自己的逻辑。如对于mybatis的Executor,有几种实现:BatchExecutor,ReuseExecutor、SimpleExecutor和CachingExecutor,当这几种Executor接口的query方法无法满足我们的要求的时候,我们就...
2019-07-31 19:32:57
1107
1
原创 上传含Maven依赖的jar包和源码包到Nexus并下载引入到其他项目中
Nexus的搭建、配置和使用请参考:搭建Maven私服、Nexus3功能介绍、Maven+Nexus代理中央仓库下面讲解如何将第三方或者自己的jar包和源码jar包上传到Nexus私服中,并在项目中引用这个jar。上传jar包的方式有三种:Nexus页面直接上传、命令行上传、在IDE集成开发工具中上传。本文介绍如何在idea中上传和下载jar包,这个jar包还通过Maven的pom依赖...
2019-07-31 19:31:18
11285
2
原创 Maven+Nexus代理中央仓库
在之前的两篇文章(搭建Maven私服、Nexus3功能介绍)中已经搭建了Nexus作为Maven私服,也介绍了Nexus的使用方法。下面说说如何将创建的代理中央仓库融入实际项目中。有下面两种方式,选其一即可。1、配置Maven的settings.xml在idea、eclipse等IDE中配置好maven的settings文件路径后,在mirrors标签中增加一个mirror<...
2019-07-31 19:31:09
4682
1
原创 Nexus3功能介绍
1、Browse Server Content1.1 Search这个就是类似Maven仓库上的搜索功能,就是从私服上查找是否有哪些包。注意:在Search这级是支持模糊搜索的1.2 Browse1.3 Upload顾名思义就是上传jar包到私服中,可以选择其中一个hosted仓库。注意:通过页面直接上传的方式只是上传了jar包,若这个jar通过Mave...
2019-07-31 19:30:53
23311
11
原创 搭建Maven私服
一、私服应用场景1、有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。而且自己maven私服更容易维护,由于在内网,公司的开发人员从maven私服迁出jar到本地仓库更快。2、当需要上传第三方或者...
2019-07-31 19:30:40
1655
2
原创 mysql中多种插入数据的语句
mysql中常用的三种插入数据的语句insert into表示插入数据,数据库会检查主键,如果出现重复会报错;replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;insert ignore into表示如果已经存在相同的记录,比如主键或者唯一性字段冲突...
2019-07-31 19:30:25
1703
2
转载 MySQL的四种事务隔离级别
原文地址:https://www.cnblogs.com/huanongying/p/7021555.html本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操...
2019-07-31 19:30:05
691
1
Java开发手册(制定团队:阿里巴巴与Java社区开发者)
2019-06-20
htmlTopdf(wkhtmltox)
2018-06-29
ckeditor-lineheight.zip
2016-10-09
ckeditor_4.5.11(即fckeditor)
2016-09-30
Notepad++的js格式化工具JSTools.dll
2016-07-13
Notepad++的html格式化工具Tidy2
2016-07-13
Notepad++的xml格式化工具,xmltools_2.3.2
2016-07-13
applicationHost.config XML格式错误解决
2016-06-06
OfficeWebApps在线预览_部署配置步骤详解
2016-06-02
windowsServer2008R2 惠普的网卡驱动
2016-06-01
BB FlashBack Pro4 汉化破解版(fbr文件播放器)
2016-05-30
org.apache.commons.zip相关jar包
2016-05-19
hsfjetty插件,eclipse用
2016-05-19
apache-maven-3.3.9-bin.zip
2016-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人