自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 rabbitmq-server的安装与升级

下载地址rabbitmq和erlang的对应版本:https://www.rabbitmq.com/which-erlang.htmlrabbitmq-server包下载地址:https://github.com/rabbitmq/rabbitmq-servererlang包下载地址:https://github.com/rabbitmq/erlang-rpm/releasessocat包下载地址:https://pkgs.org/download/socat安装安装之前需要查看自己系统的版本

2021-04-08 09:16:12 1029

原创 如何在Nginx不绑定域名下使用SSL/TLS证书?

前提该文主要记录如何在没有购买域名的情况下使用SSL/TLS协议,即地址前面的http变成了https。但是这样的SSL协议是会被浏览器认为是不安全的。在开发或者测试环境可以这样搞,生产环境下还是乖乖的买个域名吧。SSL证书第一步首先到https://csr.chinassl.net/generator-csr.html这里生成SSL秘钥(私钥)和等会拿去生成SSL证书的CSR文件。里面内容可以随便填,域名啥的随便填都没关系。保存好这两个文件。第二步拿刚才的CSR文件到https://csr.

2021-01-04 08:43:16 1544

原创 SpringBoot使用策略模式+工厂模式

为了防止大量的if...else...或switch case代码的出现,可以使用策略模式+工厂模式进行优化。在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下:Factory工厂类@Servicepublic class ReportFactory { /** * 初始化的时候将所有的ReportService自动加载到Map中 */ @Autowired private final Map<String, Repo

2020-11-24 08:19:36 1433

原创 使用阿里云OSS的服务端签名后直传功能

网站一般都会有上传功能,而对象存储服务oss是一个很好的选择。可以快速的搭建起自己的上传文件功能。该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务。服务端签名后直传背景采用JavaScript客户端直接签名(参见JavaScript客户端签名直传)时,AccessKey ID和AcessKey Secret会暴露在前端页面,因此存在严重的安全隐患。因此,OSS提供了服务端签名后直传的方案。流程介绍流程如下图所示:本示例中,Web端向服务端请求签名,然后直接上传,不

2020-09-16 08:15:26 2935 6

原创 nginx如何限制并发连接请求数?

简介限制并发连接数的模块为:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html限制并发请求数的模块为:http_limit_req_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_req_module.html这两个模块都是默认编译进Nginx中的。限制并发连接数示例配置:http { limit_conn_z

2020-09-10 10:22:30 600

原创 Docker日常使用方式

前提在安装docker之前,建议你设置系统的国内镜像源先哦,很快~嗯,快。阿里云镜像源:https://developer.aliyun.com/mirror/安装安装docker下面都是官网地址:ubuntu: https://docs.docker.com/engine/install/ubuntu/centos:https://docs.docker.com/engine/install/centos/其他版本就是url后面的几个英文不同。开机启动sudo systemctl en

2020-08-19 07:59:41 154

原创 执行ArrayList的remove(object)方法抛异常?

简介或许有很多小伙伴尝试过如下的代码ArrayList<Object> list = ...;for (Object object : list) { if (条件成立) { list.remove(object); }}然后会发现抛出java.util.ConcurrentModificationException异常。那么这个到底是什么情况?for(元素 : 集合)...

2020-07-09 15:01:16 325 2

原创 nginx使用热部署添加新模块

简介当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书。也就是使用 https协议。那么则需要添加 http_ssl_module 模块。假设你的nginx安装包目录在/home/johnson/nginx-1.17.5,下面会用到小知识点:使用/home/johnson/nginx-1.17.5/configure --help 命令,可以看到很多 --with 和 --without 开头的模块选项。–with:默

2020-06-30 10:47:57 239

原创 mysql定时备份任务

简介如果我们需要Linx系统每天帮我们定时的执行任务,那么我们可以使用crontab命令帮助我们实现。添加任务首次使用,使用crontab -e来编写我们的定时任务。输入了命令之后,会有一个定时任务的例子供我们参考0 5 * * 1 tar -zcf /var/backups/home.tgz /home/前面5个数字分别代表分、时、日、月、周,后面跟着的就是命令假如我现在需要每天晚上8点需要对我的mysql容器进行数据备份,那么我们可以这样写。0 20 * * * docker exec

2020-06-22 17:37:51 507

原创 Nginx入门学习

download下载地址:nginx.org;mainline:最新版本stable:稳定版本下载: wget 下载地址解压压缩包: tar -zxvf 压缩包目录介绍auto:辅助configure文件的执行CHANGES:不同版本的特性conf:示例文件configure:用于生成中间文件,执行编译前的必须动作contrib:vim nginx文件时显示的样式,用法 cp contrib/vim/* ~/.vim/html::nginx的默认html文件man:nginx的帮

2020-06-17 08:20:53 241 2

原创 Java并发编程实战总结 (一)

前提首先该场景是一个酒店开房的业务。暂时只包含开房账单和房间排期两个功能,开房时会添加一条账单,而房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-01 12:00 - 2020-06-02 12:00 ,那么还需要使用房间1开房的时间段则不能与账单A的时间段冲突。业务类为了简单起见,我把两个类都简化了。账单类public class Bill { // 账单号 private String serial; // 房间排期id

2020-06-03 11:07:02 267 1

原创 SpringBoot整合Flyway(数据库版本迁移工具)

简介在团队开发当中,有可能每个人都是使用自己本地的数据库。当数据库的表或者字段更新时,往往需要告知团队的其他同事。Flyway数据库版本迁移工具,目的就是解决该问题而诞生的。每当我们更新数据库的时候,只需要添加一个SQL文件到指定目录中。Flyway会在数据库创建一个表,专门记录已更新的SQL文件。当我们下次执行时则不会执行已记录的SQL文件。整合maven现在的Flyway的最新版本已经到了6.4.2。我用的是6.3.3。<!-- https://mvnrepository.com/ar

2020-05-25 16:59:07 500

原创 Java并发编程实战 05等待-通知机制和活跃性问题

Java并发编程系列Java并发编程实战 01并发编程的Bug源头Java并发编程实战 02Java如何解决可见性和有序性问题Java并发编程实战 03互斥锁 解决原子性问题Java并发编程实战 04死锁了怎么办前提在Java并发编程实战 04死锁了怎么办中,我们讲到了使用一次性申请所有资源来避免死锁的发生,代码如下:/** 锁分配器(单例类) */public class LockAllocator { private final List<Object> lock =

2020-05-20 09:21:59 351

原创 Java并发编程实战 04死锁了怎么办?

摘要在第三篇文章最后的例子当中,需要锁定两个账户才能进行转账操作,这种情况很有可能会发生死锁,我把上一章的代码片段放到下面:public class Account { // 余额 private Long money; public synchronized void transfer(Account target, Long money) { synchronized(this) { (1) synchronized

2020-05-12 08:07:54 354

原创 Java并发编程实战 03互斥锁 解决原子性问题

文章系列Java并发编程实战 01并发编程的Bug源头Java并发编程实战 02Java如何解决可见性和有序性问题摘要在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和有序性的问题,那么还有一个原子性问题咱们还没解决。在第一篇文章01并发编程的Bug源头当中,讲到了把一个或者多个操作在 CPU 执行的过程中不被中断的特性称为原子性,那么原子性的问题该如何解决。同一...

2020-05-07 08:18:30 1004 1

原创 Java并发编程实战 02Java如何解决可见性和有序性问题

摘要在上一篇文章当中,讲到了CPU缓存导致可见性、线程切换导致了原子性、编译优化导致了有序性问题。那么这篇文章就先解决其中的可见性和有序性问题,引出了今天的主角:Java内存模型(面试并发的时候会经常考核到)什么是Java内存模型?现在知道了CPU缓存导致可见性、编译优化导致了有序性问题,那么最简单的方式就是直接禁用CPU缓存和编译优化。但是这样做我们的性能可就要爆炸了~。我们应该按需禁用。...

2020-04-20 10:09:27 1697 4

原创 Java并发编程实战 01并发编程的Bug源头

摘要本文为学习极客时间:Java并发编程实战 01的总结,文章取图也是来自于该文章并发Bug源头并发编程的Bug源头主要为可见性、有序性、原子性源头之一:CPU缓存导致的可见性问题一个线程对共享变量的修改,另外一个线程能够立即看到,那么就称为可见性。现在多核CPU时代中,每颗CPU都有自己的缓存,CPU之间并不会共享缓存;如线程A从内存读取变量V到CPU-1的缓存中,线程B也从内存...

2020-04-14 13:58:14 404

原创 优雅的使用BeanUtils对List集合的操作

摘要在业务员流程的时候,我们在Entity、Bo、Vo层数据间可能经常转换数据,Entity对应的是持久层数据结构(一般是数据库表的映射模型)、Bo对应的是业务层操作的数据结构、Vo就是Controller和客户端交互的数据结构。在这些数据结构之间很大一部分属性都可能会相同,我们在使用的时候会不断的重新赋值。如:客户端传输管理员信息的到Web层,我们会使用AdminVo接收,但是到了Servic...

2019-12-31 10:13:08 3278 5

原创 SpringBoot上传文件到七牛云

准备工作mavenpom.xml添加七牛云的sdk依赖 <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version&gt...

2019-12-18 11:43:07 2663 7

原创 Spring之跨重定向请求传递数据

摘要在开发场景中,大部分数据都是使用请求转发(forward)进行传递,而使用重定向(redirect)传递数据可能比较少。那么问题来了:请求中的数据生命周期存活时间只在一个请求转发(request)中,当这个请求结束后,那么请求中所带的数据也会随着这个请求一起拜拜了。而重定向会向服务器发起两个请求,所以第一个请求的数据不就到不了第二个请求了吗?如图:如果我们想传递的数据在第二个请求中有效...

2019-12-14 10:29:52 1060

原创 Java核心技术第八章-泛型

摘要本文根据《Java核心技术 卷一》一书的第八章总结而成,部分文章摘抄书内,作为个人笔记。文章不会过于深入,望读者参考便好。为什么要使用泛型程序设计泛型程序设计(Generic programming) 意味着编写的代码可以被很多不同类型的对象所重用。类型参数的好处在没有泛型类之前,ArrayList类只维护一个Object引用的数组:public class ArrayList {...

2019-12-04 11:49:31 1038

原创 一看就懂的快速排序

概念快速排序属于交换排序,主要步骤是使用基准元素进行比较,把小于基准元素的移动到一边,大于基准元素的移动到另一边。从而把数组分成两部分,然后再从这两部分中选取出基准元素,重复上面的步骤。过程如下:紫色:基准元素绿色:大于基准元素黄色:小于基准元素这种思路叫做分治法。基准元素基准元素的选取可随机选取。下面使用中我会使用第一位的元素作为基准元素。排序过程排序拆分过程如下图:...

2019-11-23 11:52:08 558

原创 SpringBoot 整合NoSql

通用配置maven依赖添加Spring-Web和Spring-Security依赖,使用Spring-Security是因为使用SpringBoot的Redis依赖时,必须添加Spring-Security。在新版本SpringBoot才会这样。<dependency> <groupId>org.springframework.boot</groupId...

2019-11-19 20:23:53 1025

原创 SpringBoot 整合jdbc和mybatis

文章目录摘要通用配置数据库表实体类maven配置数据库配置整合JDBCmaven依赖使用测试整合MyBatismaven依赖扫描MapperMapper映射UserMapper接口UserMapper.xml摘要该文章主要为记录如何在SpringBoot项目中整合JDBC和MyBatis,在整合中我会使用简单的用法和测试用例,毕竟该文章目的是为了整合,而不是教大家如何去使用。希望大家多多包涵。...

2019-11-18 10:42:48 1555

原创 SpringBoot Web篇(二)

文章目录摘要文件上传路径映射类型转换器AOP浏览器的标签图标除去自动化配置方式一 Application方式二 properties或yml摘要继上一篇 SpringBoot Web篇(一)文件上传当我们服务器需要接收用户上传的文件时,就需要使用MultipartFile作为参数接收文件。如下: @PostMapping("/upload") public String ...

2019-11-16 18:55:03 155

原创 SpringBoot Web篇(一)

文章目录摘要全局异常处理自定义错误页面源码阅读阅读源码总结实现CORS跨域注册拦截器整合Servlet摘要文章是根据江南一点雨(松哥)的视频进行总结江南一点雨博客全局异常处理通常情况下,我们都需要对自己定义的异常进行相应的处理。捕获指定的异常方式如下:@ControllerAdvicepublic class ExceptionHandlers { // 捕获自定义异...

2019-11-13 10:59:13 160

原创 Java移位运算符

文章目录简述左移运算符 <<右移运算符 >>无符号右移 >>>总结简述Java有三种移位运算符,分别为:左移运算符 <<右移运算符 >>无符号右移运算符 >>>首先,移位运算符根据名字可知是使用二进制进行运算的。在Integer.java中,我们可以看到有两个静态常量,MIN_VALUE 和 MAX...

2019-10-24 10:28:04 188

原创 Centos搭建nginx环境

文章目录更新Centos的yum源安装PHP准备Nginx的依赖软件GCC编译器PCRE库zlib库OpenSSL开发库安装Niginx更新Centos的yum源yum update安装EPEL源和REMI源yum install epel-releaseyum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm...

2019-09-02 20:45:34 586

原创 Gitment评论插件的使用

文章目录前言开始第一步 注册 OAuth Application第二步 安装Gitment第三步 修改主题配置第四步 初始化评论插件前言继上一篇的GitPages部署自己的网站现在开始添加博客的评论插件Gitment。这里的话我是使用hexo添加gitment插件,如果不是使用hexo,请到官网指定这里。开始第一步 注册 OAuth Application首先在点击这里注册自己OAu...

2019-08-21 08:31:02 698

原创 GitPages部署自己的网站

文章目录前言开始第一步,安装工具第二步,hexo创建项目第三步 使用NexT主题(可跳过)第四步 部署到GitHub前言该文章主要为了记录我如何在GitPage上面部署博客网站,这里的话,码云上面也有相同的功能。若有小伙伴担心GitHub担心把中国的访问也禁了的话(大概不会吧),可以在码云上面部署。流程应该是差不多的。因为我使用的域名是.cn后缀,所以部署到GitHub上面就不用备案了。码...

2019-08-16 10:03:38 1332

原创 鸟哥的Linux私房菜笔记第六章(二)

文章目录文件内容查询可翻页查询文件截取文件隐藏属性文件特殊权限: SUID,SGID,SBITSet UIDSet GIDSticky Bit观察文件类型:file指令与文件的搜索指令查询 which文件名查询 find结语文件内容查询##直接查询文件内容查阅一个文件的内容可以使用指令cat/tac/nl。# [cat|tac|nl] 文件区别:1.cat是直接把文件内容输出到屏幕上...

2019-08-03 17:56:48 162

原创 鸟哥的Linux私房菜笔记第六章(一)

文章目录目录与路径相对路径与绝对路径常见的处理目录的指令目录与路径相对路径与绝对路径上一章简单的提到绝对路径和相对路径绝对路径:路径的写法一定是由根目录(/)写起的,例如:/home/user 这个目录相对路径:路径的写法不是由根目录(/)写起,例如:我当前所在目录 /home/user,我要切换到/home/user2 目录下。那么写法就是 cd …/user2,其实相对路径指的意思...

2019-08-03 17:51:14 141

原创 PHP正则表达式,看这一篇就够啦!

文章目录前言基本语法界定符:原子:元字符量词边界控制模式单元修正模式贪婪匹配懒惰匹配常见的修正模式:常用函数preg_matchpreg_replacepreg_splitpreg_greppreg_quote前言不知道你们有没有这个感觉,看正则表达式就像看天文数字一样,什么电话号码、邮箱的正则表达式,上网复制一下粘贴下来就搞定了。完全不知道这写的是什么玩意。后来我自己也想学一下,因为感觉用处...

2019-05-19 13:47:05 157

原创 鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)

鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)Linux目录配置的依据--FHS四种交互作用的形态根目录(/)的意义与内容/usr的意义与内容/var的意义与内容绝对路径与相对路径绝对路径相对路径作者:Johnson木木出处:https://www.cnblogs.com/Johnson-lin/本文以学习、研究和分享为主,如需转载,请标明作者和出处,非商业用途!鸟哥的Linux私房...

2019-05-16 21:39:37 194

Eclipse SVN整套(VisualSVN-Server(服务器)、TortoiseSVN(客户端)、site(Eclipse插件))

Eclipse SVN整套(VisualSVN-Server(服务器)、TortoiseSVN(客户端)、site(Eclipse插件)),服务器和客户端安装教程可参考http://www.cnblogs.com/xing901022/p/4399382.html,Eclipse插件安装可参考http://blog.csdn.net/jieshaowang1229/article/details/51594992

2017-08-16

空空如也

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

TA关注的人

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