- 博客(721)
- 资源 (20)
- 收藏
- 关注
转载 详解nginx配置location总结及rewrite规则写法
location正则写法一个示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
2021-01-22 15:49:07
437
原创 Java8 Caffeine 本地缓存
一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过 Redis 这种 NoSql 作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是 Redis 这种还是需要网络开销,增加时耗。本地缓存是直接从本地内存中读取,没有网络开销,例如秒杀系统或者数据量小的缓存等,比远程缓存更合适。二、缓存组件 Caffeine 介绍按 Caffeine Github 文档描述,Caffeine
2020-05-26 18:06:44
4806
3
原创 Java7 ForkJoinPool 的使用以及原理
在JDK7中新增了ForkJoinPool。ForkJoinPool采用分治+work-stealing的思想。可以让我们很方便地将一个大任务拆散成小任务,并行地执行,提高CPU的使用率。ForkJoinPool & ForkJoinTask 概述:ForkJoinTask:我们要使用 ForkJoin 框架,必须首先创建一个 ForkJoin 任务。它提供在任务中执行 fork() 和 join() 操作的机制,通常情况下我们不需要直接继承 ForkJoinTask 类,而只需要继承它的子
2020-05-26 15:25:13
1031
转载 java9新特性(简述十大新特性) 褒贬不一
java 9 提供了超过 150 项新功能特性,包括备受期待的模块化系统、可交互的 REPL 工具:jshell,JDK 编译工具,Java 公共 API 和私有代码,以及安全增强、扩展提升、性能管理改善等。可以说 Java 9 是一个庞大的系统工程,完全做了一个整体改变。但本博文只介绍最重要的十大新特性特性列表平台级modularity(原名:Jigsaw) 模块化系统Java 的 REPL 工具: jShell 命令多版本兼容 jar 包(这个在处理向下兼容方面,非常好用)语法改进:接口的
2020-05-25 15:35:35
409
转载 Java 统计运行时间之 Apache Commons-lang3和Spring Core提供的StopWatch分析
前言编码过程中我们经常会希望得到一段代码(一个方法)的执行时间,本文将介绍两种时间监视器(秒表)来让你优雅的、灵活的处理这个问题。Java源生方式这种方式最最简单,最好理解,当然也是最为常用:我们自己书写。例如:我们如果要统计一段代码的执行时间,经常会这么来写: public static void main(String[] args) { long startTime = System.currentTimeMillis(); //获取开始时间 ...
2020-05-25 15:15:05
1123
原创 Java 8 新特性之函数式接口
定义:只能有一个抽象方法可以有静态方法和默认方法,因为这两种方法都是已经实现的了可以包含Object里所有能重写的方法,因为即使接口包含像String toString()这样的抽象方法,它的实现类也会因继承了Object类,而再次对接口中的toString()方法进行实现。作用:方便直接用Lambda表达式构造出实例,让代码更加简洁。Lambda表达式必须先定义接口,创建相关方法后才能使用,这样弄十分不便,干脆开发者就直接内置了接口,所有标注@FunctionalInterfa.
2020-05-22 11:49:08
373
原创 Java8 Lambda表达式详解
1. 概述Java 8 引入的 Lambda 表达式的主要作用就是简化部分匿名内部类的写法。能够使用 Lambda 表达式的一个重要依据是必须有相应的函数接口。所谓函数接口,是指内部有且仅有一个抽象方法的接口。Lambda 表达式的另一个依据是类型推断机制。在上下文信息足够的情况下,编译器可以推断出参数表的类型,而不需要显式指名。 函数式编程:可以理解为将一个函数作为参数值进行传递。 面向对象是对数据的抽象,即:各种各样的pojo类。函数式编程则是对行为...
2020-05-21 11:35:03
871
1
原创 Java 8 Optional 详细用法
一、简介Optional 是一个对象容器,具有以下两个特点: 1.提示用户要注意该对象有可能为null 2. 简化if else代码真正体现Optional“有效避免空指针异常”是其ifPresent()、orElse()、orElseGet()以及orElseThrow()这几个方法。二、使用介绍1. 创建:Optional.empty(): 创建一个空的 Optional 实例Optional.of(T t):创建一个 O...
2020-05-20 16:56:31
3152
1
转载 Java 8 时间日期详细用法
一、概述java8 重新定义了一套语义非常清晰的日期、时间Api,位于java.time包中。该包中的所有类都是不可变且线程安全的。其实,以上所有类都是基于java8 Clock类实现的,只是由于场景不同而显示方式不一样而已。而Clock又是基于System.currentTimeMillis()实现的,所以以上时间api都是跟本主机时间关联的。二、时间操作以上虽然有很多个时间、日期类,但由于他们实现相同的接口,所以方法总体上是相通。下面就以LocalDateTime为例子:1. .
2020-05-20 15:21:08
578
转载 Java 8 Stream的详细功能示例清单介绍
什么是聚合操作在传统的 J2EE 应用中,Java 代码经常不得不依赖于关系型数据库的聚合操作来完成诸如:客户每月平均消费金额 最昂贵的在售商品 本周完成的有效订单(排除了无效的) 取十个数据样本作为首页推荐这类的操作。但在当今这个数据大爆炸的时代,在数据来源多样化、数据海量化的今天,很多时候不得不脱离 RDBMS,或者以底层返回的数据为基础进行更上层的数据统计。而 Java 的集合 API 中,仅仅有极少量的辅助型方法,更多的时候是程序员需要用 Iterator 来遍历集合,完成相关的
2020-05-20 11:03:39
253
转载 Java 8 Stream的详细语法介绍
一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出
2020-05-20 10:46:04
1115
转载 Java中 CopyOnWriteArrayList 的使用
在很多的应用场景中,读操作的可能会远远大于写操作。对于这些场景我们希望是读操作尽可能地快,而写操作慢一些也没有太大的关系。由于读操作根本不会修改原有的数据,因此对于每一次的读取都进行加锁是一种资源的浪费。根据读写锁的思想,读锁与读锁之间不冲突。但是读操作会受到写操作的阻碍,当写操作发生时,读就必须等待。否则可能读到不一致的数据。同时,如果读操作正在进行,程序也不能进行写入。为了将读取的性能发挥...
2020-04-23 17:06:36
334
转载 SpringBoot实践之---处理全局统一异常的两种方法与区别(@ControllerAdvice、@ExceptionHandler 与 ErrorController类)
前言在后端发生异常或者是请求出错时,前端通常显示如下Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Fri Jun 07 15:38:07 CST 2019There was an unexpected er...
2019-11-06 17:24:41
2866
原创 SpringBoot实践之---@EnableAsync和@Async 线程池自定义和使用
自定义线程池的配置类 AsyncConfigimport org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.task.TaskExecutor;import...
2019-11-06 16:20:41
1942
转载 SpringBoot实践之---记录HTTP请求日志
SpringBoot记录HTTP请求日志1、需求解读需求:框架需要记录每一个HTTP请求的信息,包括请求路径、请求参数、响应状态、返回参数、请求耗时等信息。需求解读:Springboot框架提供了多种方式来拦截HTTP请求和响应,只要能够获取到对应的request和response,就可以通过相应的API来获取所需要的信息。需要注意的是,请求参数可以分为两部分,一部分是GE...
2019-11-01 11:40:56
2374
原创 spring boot / cloud 使用@Retryable来进行重处理
使用场景 在实际工作中,重处理是一个非常常见的场景,比如:调用第三方接口或者使用mq时发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码...
2019-10-31 18:04:38
1321
转载 HTTP请求头Header及其作用详解
1 HTTP请求头Header及其作用详解HTTP请求头Header及其作用详解下面是访问的一个URL,http://www.hzau.edu.cn的一个header,根据实例分析各部分的功能和作用。1、Accept,浏览器端能够处理的内容类型。例如:Accept:text/html代表浏览器可以接受服务器回发的类型为text/html也就是我们常说的html文...
2019-10-29 11:28:47
3836
原创 IDEA自动生成类注释和方法注释应用及模板设置
为了统一自己和小伙伴们的注解风格,所以需要修改Idea的类注解和方法注解模板,在之前的项目中曾经用过eclipse工具配置过,但是现在改用idea了就趁这个机会将Idea中注解模板配置步骤写成一篇文章,供日后查阅。一、类注解模板配置步骤一:打开Idea,在菜单栏中找到 File ->setting -> File and Code Templates 后点击,选择右侧的Cla...
2019-10-24 17:07:21
646
转载 Lombok介绍、使用方法和总结
1 Lombok背景介绍官方介绍如下:Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code.大致意思是Lombok通过增加一些“处理程序”,可以让...
2019-10-14 11:38:27
213
转载 常见分布式全局唯一ID生成策略及算法的对比
转载自:https://gavinlee1.github.io/2017/06/28/%E5%B8%B8%E8%A7%81%E5%88%86%E5%B8%83%E5%BC%8F%E5%85%A8%E5%B1%80%E5%94%AF%E4%B8%80ID%E7%94%9F%E6%88%90%E7%AD%96%E7%95%A5%E5%8F%8A%E7%AE%97%E6%B3%95%E7%9A%84%E...
2019-10-11 15:17:32
414
原创 keytool 生成证书(包括支持指定IP)+Springboot支持https + RestTemplate忽略访问https的证书方式
最近几天弄Springboot的https的restful访问,期间遇到一系列的问题记录如下:1.springboot项目端口不能定义为 6666等特殊端口 本来想选个酷炫的6666端口启动,结果启动是没有问题,但是通过浏览器访问就没有反应,这个问题后来查询是因为浏览器对一些特殊端口有做限制。具体哪些端口这儿就不记录了,反正6666是不行的。2.keytool生成证书及to...
2019-09-02 20:09:32
4937
转载 将Web应用部署到Tomcat根目录的三种方法
将应用部署到Tomcat根目录的三种方法将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问。方法一:(最简单直接的方法)删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下。方法二:删...
2019-03-13 16:42:17
1990
转载 在一台电脑上同时关联GitLab和GitHub
原文地址:在一台电脑上同时关联GitLab和GitHubGit 客户端与服务器端的通信支持多种协议,其中SSH是最常用的。SSH的公钥登录流程:用户将自己的公钥存储在远程主机,登录时,远程主机会向用户发送一条消息,用户用自己的私钥加密后,再发给服务器。远程主机用事先存储的公钥进行解密,如果成功,就证明用户可信。生成GitLab和GitHub的SSHSSH生成命令ssh-keygen...
2018-12-26 18:10:56
424
转载 MQTT实战篇
原文地址:MQTT实战篇前几篇文章我们介绍了MQTT协议本身,虽然非常适合物联网项目,但是在项目实施的时候有诸多不便:mosquitto等开源产品可扩展性不佳、需要自己签发X509证书、认证与授权不灵活、MQTT服务需要自己运维等。所以,在实施物联网服务的时候,应该采用云端的托管服务,以便聚焦物联网业务,而不是为了基础架构和运维烦恼。这次我们将通过百度开放云物联网服务IoT来体验一下云端的...
2018-12-11 14:09:31
649
转载 MQTT安全篇
原文地址:MQTT安全篇物联网的核心是连接万物,通过交换并分析数据使得生活更舒适与便捷。不过,敏感数据泄露或者设备被非法控制可不是闹着玩的。比如前段时间国内某著名家电企业的智能洗衣机,使用了某著名电商基于XMPP协议的物联网平台,不费吹灰之力便被黑客攻破并远程遥控,给智能家居的发展带来了一些阴影。究其本质,并不是物联网技术本身有缺陷,而是在物联网系统的设计中最基本的安全设计被工程师轻视了,才导...
2018-12-11 14:08:33
730
转载 MQTT进阶篇
原文地址:MQTT进阶篇在MQTT快速入门中,我们介绍了最流行的物联网协议MQTT的背景以及基本使用方法。在这篇文章中,我们会继续考察MQTT的高级玩法——与网页应用的交互。MQTT是基于TCP协议实现,基于HTTP的网页应用便无法与之交互了。为了解决这个问题,许多MQTT代理加上了对WebSockets的支持,可以方便地实现如下场景:显示设备的实时信息 接收报警等推送信息 查看设备的...
2018-12-11 14:07:24
289
转载 MQTT入门篇
原文地址:MQTT入门篇物联网(Internet of Things,IoT)最近曝光率越来越高。虽然HTTP是网页的事实标准,不过机器之间(Machine-to-Machine,M2M)的大规模沟通需要不同的模式:之前的请求/回答(Request/Response)模式不再合适,取而代之的是发布/订阅(Publish/Subscribe)模式。这就是轻量级、可扩展的MQTT(Message ...
2018-12-11 14:06:10
255
转载 MQTT学习笔记—— Mosquitto配置文件参数说明
1、获取&安装 Mosquitto提供了Windows、Linux以及qnx系统的版本,安装文件可从 http://mosquitto.org/files/binary/地址中获取。Windows系统下的安装过程非常简单,我们甚至可以把Mosquitto直接安装成为系统服务;但是,在实际应用中,我们更倾向于使用Linux系统的服务器,接下来我们就将重点介绍Linux版Mosquitt...
2018-12-11 14:00:47
6902
转载 MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
0 前言 MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。 若初次接触MQTT协议,可先理解以下概念:【MQTT协议特点】——相比于RESTful架构的...
2018-12-11 13:53:00
431
转载 SpringBoot实践之---集成MQTT消息推送和消息订阅功能
MQTT是一个轻量级的消息发布/订阅协议,它是实现基于手机客户端的消息推送服务器的理想解决方案。 实现MQTT协议的中间件有很多,我用的是Apollo服务器,如何搭建MQTT服务器,请查阅其他资料。这里,主要介绍SpringBoot2.0集成MQTT实现消息推送的功能。好,正式开始: 本文采用Gateway绑定的方式,网上也有介绍但不全面,还有其他...
2018-12-11 13:44:03
23068
5
转载 MySQL各存储引擎
MySQL5.5以后默认使用InnoDB存储引擎,其中InnoDB和BDB提供事务安全表,其它存储引擎都是非事务安全表。若要修改默认引擎,可以修改配置文件中的default-storage-engine。可以通过:show variables like 'default_storage_engine';查看当前数据库到默认引擎。命令:show engines和show variables li...
2018-12-06 14:06:57
185
转载 MySQL5种索引类型
一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext...
2018-12-06 13:36:32
5144
转载 SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本)
原文地址:SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)(Finchley版本)上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个组件了,即Hystrix Tu...
2018-11-27 17:48:18
178
转载 SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)
原文地址:SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)一、Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好...
2018-11-27 17:41:07
247
转载 SpringCloud教程 | 第十一篇: docker部署spring cloud项目
原文地址:史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目一、docker简介Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。Docker通...
2018-11-27 17:36:43
416
转载 SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)
原文地址:SpringCloud教程 | 第十篇: 高可用的服务注册中心(Finchley版本)文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这在生产环境上是不太合适的,这篇文章主要介绍怎么将Eureka Serv...
2018-11-23 08:51:08
181
转载 SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)
原文地址:SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)这篇文章主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。一、简介Add sleuth to the classpath of a Spring Boot application (see below for M...
2018-11-22 17:39:38
268
转载 SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)
原文地址:SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。一、准备工作本文还是基于上一篇文章来实现。按照...
2018-11-22 17:30:43
193
转载 SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)
原文地址:SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:一、准备工作继续使用上一篇文章的工程,创...
2018-11-22 17:25:50
151
MyBatis_Generator_1.3.1
2015-09-02
Centos下NFS安装与配置-V1.0
2015-07-21
tomcat6,7,8集群session共享所需jar包(支持kryo,javolution)
2014-09-23
安装Nginx-1.7.4作为Windows服务自启动运行
2014-09-23
WinDBG JVM
2013-06-06
Jad(java反编译工具)
2012-12-05
FindBugs插件
2012-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人