博客园 - Johnson木木
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=143347
2022-04-25T00:31:17Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
feed.cnblogs.com
https://www.cnblogs.com/Johnson-lin/p/14624520.html
rabbitmq-server的安装与升级 - Johnson木木
下载地址 rabbitmq和erlang的对应版本:https://www.rabbitmq.com/which-erlang.html rabbitmq-server包下载地址:https://github.com/rabbitmq/rabbitmq-server/releases erlang包
2021-04-08T01:12:00Z
2021-04-08T01:12:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】下载地址 rabbitmq和erlang的对应版本:https://www.rabbitmq.com/which-erlang.html rabbitmq-server包下载地址:https://github.com/rabbitmq/rabbitmq-server/releases erlang包 <a href="https://www.cnblogs.com/Johnson-lin/p/14624520.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/14227869.html
如何在Nginx不绑定域名下使用SSL/TLS证书? - Johnson木木
前提 该文主要记录如何在没有购买域名的情况下使用SSL/TLS协议,即地址前面的http变成了https。但是这样的SSL协议是会被浏览器认为是不安全的。在开发或者测试环境可以这样搞,生产环境下还是乖乖的买个域名吧。 SSL证书 第一步 首先到https://csr.chinassl.net/gen
2021-01-04T00:42:00Z
2021-01-04T00:42:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】前提 该文主要记录如何在没有购买域名的情况下使用SSL/TLS协议,即地址前面的http变成了https。但是这样的SSL协议是会被浏览器认为是不安全的。在开发或者测试环境可以这样搞,生产环境下还是乖乖的买个域名吧。 SSL证书 第一步 首先到https://csr.chinassl.net/gen <a href="https://www.cnblogs.com/Johnson-lin/p/14227869.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/14028372.html
SpringBoot使用策略模式+工厂模式 - Johnson木木
为了防止大量的if...else...或switch case代码的出现,可以使用策略模式+工厂模式进行优化。 在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下: Factory工厂类 @Service public class ReportFactory { /**
2020-11-24T00:17:00Z
2020-11-24T00:17:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】为了防止大量的if...else...或switch case代码的出现,可以使用策略模式+工厂模式进行优化。 在我的项目当中,报表繁多,所以尝试了这种方式进行优化报表的架构。代码很简单,如下: Factory工厂类 @Service public class ReportFactory { /** <a href="https://www.cnblogs.com/Johnson-lin/p/14028372.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13677099.html
使用阿里云OSS的服务端签名后直传功能 - Johnson木木
网站一般都会有上传功能,而对象存储服务oss是一个很好的选择。可以快速的搭建起自己的上传文件功能。 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务。 服务端签名后直传 背景 采用JavaScript客户端直接签名(参见JavaScript客户端签名直传)时,Access
2020-09-16T00:16:00Z
2020-09-16T00:16:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】网站一般都会有上传功能,而对象存储服务oss是一个很好的选择。可以快速的搭建起自己的上传文件功能。 该文章以使用阿里云的OSS功能为例,记录如何在客户端使用阿里云的对象存储服务。 服务端签名后直传 背景 采用JavaScript客户端直接签名(参见JavaScript客户端签名直传)时,Access <a href="https://www.cnblogs.com/Johnson-lin/p/13677099.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13608926.html
nginx如何限制并发连接请求数? - Johnson木木
简介 限制并发连接数的模块为:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html 限制并发请求数的模块为:http_limit_req_module,地址:http://ngi
2020-09-04T01:37:00Z
2020-09-04T01:37:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 限制并发连接数的模块为:http_limit_conn_module,地址:http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html 限制并发请求数的模块为:http_limit_req_module,地址:http://ngi <a href="https://www.cnblogs.com/Johnson-lin/p/13608926.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13526988.html
Docker日常使用方式 - Johnson木木
前提 在安装docker之前,建议你设置系统的国内镜像源先哦,很快~嗯,快。 阿里云镜像源:https://developer.aliyun.com/mirror/ 安装 安装docker 下面都是官网地址: ubuntu: https://docs.docker.com/engine/instal
2020-08-19T00:00:00Z
2020-08-19T00:00:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】前提 在安装docker之前,建议你设置系统的国内镜像源先哦,很快~嗯,快。 阿里云镜像源:https://developer.aliyun.com/mirror/ 安装 安装docker 下面都是官网地址: ubuntu: https://docs.docker.com/engine/instal <a href="https://www.cnblogs.com/Johnson-lin/p/13526988.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13277592.html
执行ArrayList的remove(object)方法抛异常? - Johnson木木
简介 或许有很多小伙伴都尝试过如下的代码: ArrayList<Object> list = ...; for (Object object : list) { if (条件成立) { list.remove(object); } } 然后会发现抛出java.util.ConcurrentModif
2020-07-10T01:26:00Z
2020-07-10T01:26:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 或许有很多小伙伴都尝试过如下的代码: ArrayList<Object> list = ...; for (Object object : list) { if (条件成立) { list.remove(object); } } 然后会发现抛出java.util.ConcurrentModif <a href="https://www.cnblogs.com/Johnson-lin/p/13277592.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13211897.html
nginx使用热部署添加新模块 - Johnson木木
简介 当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书。也就是使用 https协议。那么则需要添加 http_ssl_module 模块。假设你的nginx安装包目录在/home/johnson/nginx-1.17
2020-06-30T01:26:00Z
2020-06-30T01:26:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书。也就是使用 https协议。那么则需要添加 http_ssl_module 模块。假设你的nginx安装包目录在/home/johnson/nginx-1.17 <a href="https://www.cnblogs.com/Johnson-lin/p/13211897.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13178028.html
mysql定时备份任务 - Johnson木木
简介 在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份。而Linux的crontab指令则可以帮助我们实现对数据库定时进行备份。首先我们来简单了解crontab指令,如果你会了请跳到下一个内容mysql备份。 本文章的mysql数据库是安装在docker容器当中,以此为例进行讲
2020-06-22T09:43:00Z
2020-06-22T09:43:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份。而Linux的crontab指令则可以帮助我们实现对数据库定时进行备份。首先我们来简单了解crontab指令,如果你会了请跳到下一个内容mysql备份。 本文章的mysql数据库是安装在docker容器当中,以此为例进行讲 <a href="https://www.cnblogs.com/Johnson-lin/p/13178028.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13150368.html
Nginx入门学习 - Johnson木木
简介 nginx 是HTTP和反向代理服务器,邮件代理服务器和通用TCP/UDP代理服务器。总之一句话,nginx很火很牛逼就对了。 download 下载地址:http://nginx.org/en/download.html; mainline:最新版本 stable:稳定版本 下载命令: wg
2020-06-17T00:21:00Z
2020-06-17T00:21:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 nginx 是HTTP和反向代理服务器,邮件代理服务器和通用TCP/UDP代理服务器。总之一句话,nginx很火很牛逼就对了。 download 下载地址:http://nginx.org/en/download.html; mainline:最新版本 stable:稳定版本 下载命令: wg <a href="https://www.cnblogs.com/Johnson-lin/p/13150368.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13053552.html
Java并发编程实战总结 (一) - Johnson木木
前提 首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。 业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-01 12:00 - 2020-06-02 12:00 ,那么还需要使用房间1开
2020-06-06T01:28:00Z
2020-06-06T01:28:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】前提 首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。 业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-01 12:00 - 2020-06-02 12:00 ,那么还需要使用房间1开 <a href="https://www.cnblogs.com/Johnson-lin/p/13053552.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/13041991.html
SpringBoot整合Flyway(数据库版本迁移工具) - Johnson木木
简介 在团队开发当中,有可能每个人都是使用自己本地的数据库。当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新。 Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的)。每当我们更新数据库的时候,只需要添加SQL文件到指定目录中。Flyway会在数据库创建一个表,专门记
2020-06-04T02:39:00Z
2020-06-04T02:39:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】简介 在团队开发当中,有可能每个人都是使用自己本地的数据库。当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新。 Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的)。每当我们更新数据库的时候,只需要添加SQL文件到指定目录中。Flyway会在数据库创建一个表,专门记 <a href="https://www.cnblogs.com/Johnson-lin/p/13041991.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12921698.html
Java并发编程实战 05等待-通知机制和活跃性问题 - Johnson木木
Java并发编程系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" "Java并发编程实战 03互斥锁 解决原子性问题" "Java并发编程实战 04死锁了怎么办" 前提 在 "Java并发编程实战 04死锁了怎么办" 中,讲到
2020-05-20T01:31:00Z
2020-05-20T01:31:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】Java并发编程系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" "Java并发编程实战 03互斥锁 解决原子性问题" "Java并发编程实战 04死锁了怎么办" 前提 在 "Java并发编程实战 04死锁了怎么办" 中,讲到 <a href="https://www.cnblogs.com/Johnson-lin/p/12921698.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12874009.html
Java并发编程实战 04死锁了怎么办? - Johnson木木
Java并发编程文章系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" "Java并发编程实战 03互斥锁 解决原子性问题" 前提 在第三篇文章最后的例子当中,需要获取到两个账户的锁后进行转账操作,这种情况有可能会发生死锁,我把
2020-05-12T00:13:00Z
2020-05-12T00:13:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】Java并发编程文章系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" "Java并发编程实战 03互斥锁 解决原子性问题" 前提 在第三篇文章最后的例子当中,需要获取到两个账户的锁后进行转账操作,这种情况有可能会发生死锁,我把 <a href="https://www.cnblogs.com/Johnson-lin/p/12874009.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12840672.html
Java并发编程实战 03互斥锁 解决原子性问题 - Johnson木木
文章系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" 摘要 在上一篇文章 "02Java如何解决可见性和有序性问题" 当中,我们解决了可见性和有序性的问题,那么还有一个 问题咱们还没解决。在第一篇文章 "01并发编程的Bug源
2020-05-07T00:33:00Z
2020-05-07T00:33:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】文章系列 "Java并发编程实战 01并发编程的Bug源头" "Java并发编程实战 02Java如何解决可见性和有序性问题" 摘要 在上一篇文章 "02Java如何解决可见性和有序性问题" 当中,我们解决了可见性和有序性的问题,那么还有一个 问题咱们还没解决。在第一篇文章 "01并发编程的Bug源 <a href="https://www.cnblogs.com/Johnson-lin/p/12840672.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12736004.html
Java并发编程实战 02Java如何解决可见性和有序性问题 - Johnson木木
摘要 在上一篇文章 "Java并发编程实战 01并发Bug的源头" 当中,讲到了 CPU缓存导致可见性、线程切换导致了原子性、编译优化导致了有序性问题 。那么这篇文章就先解决其中的可见性和有序性问题,引出了今天的主角: Java内存模型 (面试并发的时候会经常考核到) 什么是Java内存模型? 现在
2020-04-20T02:07:00Z
2020-04-20T02:07:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】摘要 在上一篇文章 "Java并发编程实战 01并发Bug的源头" 当中,讲到了 CPU缓存导致可见性、线程切换导致了原子性、编译优化导致了有序性问题 。那么这篇文章就先解决其中的可见性和有序性问题,引出了今天的主角: Java内存模型 (面试并发的时候会经常考核到) 什么是Java内存模型? 现在 <a href="https://www.cnblogs.com/Johnson-lin/p/12736004.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12697533.html
Java并发编程实战 01并发编程的Bug源头 - Johnson木木
摘要 编写正确的并发程序对我来说是一件极其困难的事情,由于知识不足,只知道 这个修饰符进行同步。 本文为学习 "极客时间:Java并发编程实战 01" 的总结,文章取图也是来自于该文章 并发Bug源头 在计算机系统中,程序的执行速度为: CPU 内存 I/O设备 ,为了平衡这三者的速度差异,计算机体
2020-04-14T05:57:00Z
2020-04-14T05:57:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】摘要 编写正确的并发程序对我来说是一件极其困难的事情,由于知识不足,只知道 这个修饰符进行同步。 本文为学习 "极客时间:Java并发编程实战 01" 的总结,文章取图也是来自于该文章 并发Bug源头 在计算机系统中,程序的执行速度为: CPU 内存 I/O设备 ,为了平衡这三者的速度差异,计算机体 <a href="https://www.cnblogs.com/Johnson-lin/p/12697533.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12123012.html
优雅的使用BeanUtils对List集合的操作 - Johnson木木
摘要 我们在Entity、Bo、Vo层数据间可能经常转换数据,Entity对应的是持久层数据结构(一般是数据库表的映射模型)、Bo对应的是业务层操作的数据结构、Vo就是Controller和客户端交互的数据结构。在这些数据结构之间很大一部分属性都可能会相同,我们在使用的时候会不断的重新赋值。 如:客
2019-12-31T02:13:00Z
2019-12-31T02:13:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】摘要 我们在Entity、Bo、Vo层数据间可能经常转换数据,Entity对应的是持久层数据结构(一般是数据库表的映射模型)、Bo对应的是业务层操作的数据结构、Vo就是Controller和客户端交互的数据结构。在这些数据结构之间很大一部分属性都可能会相同,我们在使用的时候会不断的重新赋值。 如:客 <a href="https://www.cnblogs.com/Johnson-lin/p/12123012.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12059067.html
SpringBoot上传文件到七牛云 - Johnson木木
准备工作 maven pom.xml添加七牛云的sdk依赖 配置项 七牛云上传必要的配置有:accessKey、secretKey、bucket 其中accessKey、secretKey在该网址可查看 "https://portal.qiniu.com/user/key" bucket为你的存储空
2019-12-18T03:43:00Z
2019-12-18T03:43:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】准备工作 maven pom.xml添加七牛云的sdk依赖 配置项 七牛云上传必要的配置有:accessKey、secretKey、bucket 其中accessKey、secretKey在该网址可查看 "https://portal.qiniu.com/user/key" bucket为你的存储空 <a href="https://www.cnblogs.com/Johnson-lin/p/12059067.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Johnson-lin/p/12038333.html
Spring之跨重定向请求传递数据 - Johnson木木
摘要 在开发场景中,大部分数据都是使用请求转发(forward)进行传递,而使用重定向(redirect)传递数据可能比较少。 那么问题来了:请求中的数据生命周期存活时间只在一个请求转发(request)中,当这个请求结束后,那么请求中所带的数据也会随着这个请求一起拜拜了。而重定向会向服务器发起两个
2019-12-14T02:36:00Z
2019-12-14T02:36:00Z
Johnson木木
https://www.cnblogs.com/Johnson-lin/
【摘要】摘要 在开发场景中,大部分数据都是使用请求转发(forward)进行传递,而使用重定向(redirect)传递数据可能比较少。 那么问题来了:请求中的数据生命周期存活时间只在一个请求转发(request)中,当这个请求结束后,那么请求中所带的数据也会随着这个请求一起拜拜了。而重定向会向服务器发起两个 <a href="https://www.cnblogs.com/Johnson-lin/p/12038333.html" target="_blank">阅读全文</a>