自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 问答 (9)
  • 收藏
  • 关注

原创 OpenSSL自建CA和签发二级CA及颁发SSL证书

自己签发CA证书再签发服务器证书的场景非常简单。把根CA证书导入到浏览器后,就可以信任由这个根CA直接签发的服务器证书。但是实际上网站使用的证书肯定都不是由根CA直接签发的,比如像百度这种,网站使用的证书就是由二级CA颁发的证书。本文就来演示,自签CA,由自签CA签发二级CA,最后由二级CA签发网站证书---------------------------------------...

2019-01-02 22:57:25 6668

原创 OpenSSL自建CA和颁发SSL证书

系统环境:Ubuntu 18.10OpenSSL 1.1.1  11 Sep 2018一:自建CA1:依次创建如下目录mkdir -p /opt/ca/rootmkdir /opt/ca/root/key2:vim /opt/ca/root/openssl.cnf[ ca ]default_ca = CA_default[ CA_default ]dir ...

2019-01-01 21:59:23 2989

原创 maven项目引入spring boot依赖之后filter不生效的问题

创建一个maven项目,项目结构如下:其中,pom.xml的内容如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4

2017-12-18 17:23:26 9978 4

原创 Java加密解密之数字签名

上一篇帖子,我们讲了MAC(消息认证码),它可以验证身份和防篡改。它的机制是通过通信双方都持有相同的秘钥去实现,秘钥相同摘要才相同,没有秘钥就不能生成正确的摘要信息。但是,它有个缺点,就是通信双方必须持有相同的秘钥,解决方法就是使用数字签名数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了非对称加密领域的技术实现,用于鉴别数字信息的方法

2017-10-08 20:36:48 2933 1

原创 Java加密解密之MAC(消息认证码)

上一篇帖子,我们讲了消息摘要(数字摘要),它是把一个文本/文件 通过摘要函数(hash函数)计算出一个结果。然后把文本/文件和摘要结果一同发给接受者接受者接收到文件之后,也进行摘要,把两个摘要结果进行对比。如果一致就说明文本/文件和摘要是一致的但是,这里有个问题,假设A把文件和摘要发给B,中途被C截获了。C把文件改了,同时把改后的文件进行摘要。然后把改后的文件和重新生成的摘要发给B

2017-10-08 12:40:42 5827

原创 Java加密解密之消息摘要

消息摘要,也叫数字摘要。它是一种单向的,不可逆的加密算法。发送方:采用单向hash函数对消息进行计算,得到摘要。发送消息和摘要。接收方:把接收的消息,按着同样的hash函数计算,新产生的摘要和发送来的原摘要进行对比。如果2个摘要不一致,说明消息不完整了。消息摘要的特点:1、无论输入的消息有多长,计算出来的摘要长度是固定的。2、相同的消息,计算出来的摘要相同。不同的消息,

2017-10-07 22:04:53 746

原创 Java加密解密之非对称加密

非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。使用公钥加密的,要使用私钥解密。反之,使用私钥加密的,要使用公钥解密。和对称加密的区别是:对称加密:加密和解密时使用的是同一个秘钥非对称加密:加密和解密时使用的是不同的秘钥非对称加密与对称加密相比,其安全性更好:对称加

2017-10-07 13:33:23 1038

原创 Java加密解密之对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。其核心思想是,加密和解密都是同一个秘钥对称加密常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。对称加密算法的缺

2017-10-07 12:49:04 2467

原创 Spring4自定义@Value功能

本文章使用的Spring版本4.3.10.RELEASE@Value在Spring中,功能非常强大,可以注入一个配置项,可以引用容器中的Bean(调用其方法),也可以做一些简单的运算如下的一个简单demo,演示@Value的用法import org.springframework.stereotype.Service;/** * 测试Bean */@Serv

2017-08-20 17:51:57 3945 2

原创 Spring Data JPA使用复合主键

演示环境MySQL 5.7JDK1.8spring-data-jpa 1.10.4.RELEASEhibernate 5.1.2.Final这里演示一个余额宝的例子,一个用户一天一条记录,表示一个用户一天的收益情况。其中,用户ID,日期是复合主键项目总体结构如下:下面依次贴出源代码pom.xml<project xmlns="http:/

2017-07-01 10:58:53 11011

原创 使用jvisualvm、jmc远程监控JVM

演示环境:jdk1.8jvisualvm和jmc都是JDK自带的监控工具。jmc监控数据比jvisualvm更加丰富。它们都在JDK bin目录中首先介绍jvisualvm的使用打开bin/jvisualvm.exe本地的JVM进程都已经识别出来了,直接点击即可监控。为了使jvisualvm功能更加强大,需要安装一些插件  运行jvisual

2017-06-30 13:05:19 20542 1

原创 maven+spring mvc环境搭建xml版(无web.xml,maven jetty插件运行)

环境:Spring Framework 4.3.7.RELEASEServlet 3.1.0JDK 1.8这里的xml版,是指spring的配置使用xml创建maven webapp项目:maven-spring-webmvc-xml  项目结构如下:各文件代码如下:pom.xml<

2017-03-05 12:34:20 2209

原创 maven+spring mvc环境搭建注解版(无web.xml,maven jetty插件运行)

环境:Spring Framework 4.3.7.RELEASEServlet 3.1.0JDK 1.8创建maven webapp项目:maven-spring-webmvc  项目结构如下:各文件代码如下:pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

2017-03-05 11:57:40 3274 1

原创 maven检查是否有新依赖/插件的方法

maven是现在最流行的项目管理工具,在企业中使用的非常广泛。在一个maven管理的项目中,一般会配置很多依赖、插件,如何检查这些依赖是否有最新的版本?除了去这些框架的官方网站上看,maven也自带了检查最新版本的方法就是使用version插件versions-maven-pluginversions:display-dependency-updates scans a p

2017-02-01 18:27:13 2821 1

原创 Spring Boot WAR包运行原理分析

Spring Boot应用支持用jar方式独立运行(官方推荐)。当然了,也支持打包成war放到web容器中运行下面,讲简单的演示一下打包成war包运行的步骤1:新建maven项目<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in

2017-01-23 16:00:38 6664 3

原创 Spring Boot整合H2测试DAO

在写DAO层的单元测试时,我们往往会遇到一个问题,测试用例所依赖的数据库数据被修改或删除了,或者在一个新的环境下所依赖的数据库不存在,导致单元测试无法通过,进而构建失败。在这种情况下,使用H2内存数据库来模拟数据库环境是一个很好的解决方案H2是一个短小精干的嵌入式数据库引擎,主要的特性包括:1: 免费、开源、快速2: 嵌入式的数据库服务器,支持集群3: 提供JDBC、ODB

2017-01-21 10:29:19 19531

原创 JDBC中使用Java8的日期LocalDate、LocalDateTime

大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。Java8里面新出来了一些API,LocalDate、

2016-11-13 11:54:55 28946 6

原创 JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime

大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。Java8里面新出来了一些API,LocalDate、

2016-11-12 16:33:13 13725 2

原创 mybatis中使用Java8的日期LocalDate、LocalDateTime

大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。Java8里面新出来了一些API,LocalDate、

2016-11-12 12:24:43 37604 5

原创 Embed Tomcat8简单示例

一:项目依赖 org.apache.tomcat.embed tomcat-embed-core 8.5.5 org.apache.tomcat.embed tomcat-embed-el 8.5.5 org.apache.tomcat.embed tomcat-embed-jasper 8.5.5二:示例代码servletpackage c

2016-09-20 15:20:13 14359 2

原创 使用Fork/Join实现WordCount例子

Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架是一个比较特殊的线程池框架,专用于需要将一个任务不断分解成子任务(分叉),再不断进行汇总得到最终结果(结合)的计算过程。比起传统的线程池类ThreadPoolExecutor,ForkJoinPool 实现了工作窃取算

2016-09-20 14:46:56 2387

原创 etcd3安装和配置

etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重于:简单:支持 curl 方式的用户 API (HTTP+JSON)安全:可选 SSL 客户端证书认证快速:单实例可达每秒 1000 次写操作可靠:使用 Raft 实现分布式系统环境:CentOS release 6.

2016-08-24 19:00:52 11093 1

原创 nginx + lua环境搭建

Lua 是一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。直接使用官方的nginx + lua_nginx_m

2016-08-23 16:59:06 3865

原创 Spring Boot WebSocket整合及nginx配置

一:Spring Boot WebSocket整合创建一个maven项目,加入如下依赖 org.springframework.boot spring-boot-dependencies 1.4.0.RELEASE import pom org.springframework.boot spring-boot-star

2016-08-11 17:49:02 11589 1

原创 几种调用web service的方式【含spring】

首先写一个服务端:package com.pp.ws.server;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;@WebService(targetNamespace="http://wsapi.pp1618.com", serviceName="PPLogin

2016-08-03 16:15:08 7611

原创 redis执行Lua脚本

Lua 是一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。redis在2.6推出了脚本功能,允许开发者使用Lua语言编

2016-07-15 16:44:01 4991

原创 gRPC快速入门

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持.gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单

2016-07-12 09:20:16 17913 3

原创 使用位移解决多种客户端显示问题

现在有一个需求要解决,需求如下:产品需要在不同的终端显示,有PC, WAP, WX(微信), APP等4个终端,这些产品需要在上面4个终端中的一个或多个中显示,请问,数据库怎么设计。最传统的做法,在产品表中加一个字段,显示类型 client_type varchar(100)如果要在PC端显示,就保存为PC如果要在PC、APP端显示,就保存成PC,APP如果要在PC、W

2016-07-08 14:43:44 967 1

原创 使用Spring Cloud Zuul实现动态路由

Zuul 是提供动态路由,监控,弹性,安全等的边缘服务。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。Zuul 可以适当的对多个 Amazon Auto Scaling Groups 进行路由请求。首先新建maven项目,加入如下依赖 org.springframework.cloud spring-cloud-netflix

2016-07-05 16:48:35 60497 2

原创 使用Spring Cloud Zookeeper实现服务的注册和发现

Spring Cloud Zookeeper provides Apache Zookeeper integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few

2016-07-01 18:46:24 29073 1

原创 使用Apache Curator实现服务的注册和发现

使用zookeeper可以实现服务的注册和发现,而Curator是对zookeeper进行的一层封装,自然也封装了一套实现服务的注册和发现,本文就介绍如何使用Curator实现服务的注册和发现首先要安装zookeeper,我这里安装的是:zookeeper-3.4.6curator 的依赖版本如下: org.apache.curator curator-x-discover

2016-07-01 17:24:14 9235 1

原创 Spring Cloud Config 快速入门

Spring Cloud Config分布式配置服务由服务器端和客户端共同组成,服务端提供配置信息的存储管理,对配置进行统一的管理,客户端读取配置信息为了能统一的管理配置文件,我们需要先把配置文件提交到git上去(也可以用svn),首先创建如下3个配置文件jdbc-dev.propertiesjdbc-test.propertiesjdbc-production.propertie

2016-06-29 10:57:45 6958 1

原创 使用Spring Cloud Consul实现服务的注册和发现

首先安装consul环境,参照之前的文章:http://blog.csdn.net/mn960mn/article/details/51753893项目规划,2个服务端,1个客户端首先来看服务端,一:服务端1:项目依赖 org.springframework.cloud spring-cloud-consul-dependencies 1

2016-06-28 14:35:18 32785 10

原创 使用consul实现服务的注册和发现

服务注册 - 服务进程在注册中心注册自己的位置。它通常注册自己的主机和端口号,有时还有身份验证信息,协议,版本号,以及运行环境的详细资料。服务发现 - 客户端应用进程向注册中心发起查询,来获取服务的位置。服务发现的一个重要作用就是提供一个可用的服务列表服务定义的格式类似如下:{ "service":{ "id": "jetty", "name": "jetty", "ad

2016-06-27 16:05:22 14607 4

原创 Protocol Buffer for Java快速入门

Protocol Buffer它是谷歌内部用的一种高效的、可扩展的对结构化数据进行编码的格式规范。是一个用来序列化结构化数据的技术,支持多种语言诸如C++、Java以及Python语言,可以使用该技术来持久化数据或者序列化成网络传输的数据。相比较一些其他的XML技术而言,该技术的一个明显特点就是更加节省空间(以二进制流存储)、速度更快以及更加灵活。一:编写proto文件Acco

2016-06-26 11:02:51 1264 2

原创 consul的安装和配置

Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。consul提供的一些关键特性:service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。health checking:健康检测使consul可以快速的告警

2016-06-24 17:29:09 15766 1

原创 关于mybatis增加缓存引入的坑

mapper.xml的配置文件里面开启了缓存,代码如下: select id,name,price,create_time from tb_product where is_del=0 order by create_time desc 缓存时间是3s,注意返回的结果,createTime类型是jav

2016-06-21 15:47:57 1339

原创 haproxy安装配置

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。操作系统

2016-06-15 11:59:49 1550

原创 Tomcat9配置HTTP2

HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。系统环境:CentOS release 6.5 (Final)  x64JDK 1.8.0_92apache-tomcat-9.

2016-06-07 12:09:10 18317 6

原创 使用appassembler-maven-plugin插件生成启动脚本

appassembler-maven-plugin可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序。插件网址:http://www.mojohaus.org/appassembler/appassembler-maven-plugin/appassembler的配置比较简单,在pom.xml的配置文件加入插件配置。生成启动

2016-06-01 10:47:34 12551

空空如也

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

TA关注的人

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