6 James Shangguan

京东集团 - 软件工程师

我要认证

Standing on Shoulders of Giants

等级
TA的排名 4w+

设计模式:如何优雅地使用责任链模式

责任链模式(Chain of Responsibility Pattern)在《Head First设计模式》一书中被称为“剩下的模式”,其实使用也是蛮多的。最近在学习Netty的过程中用到了责任链模式,在此反过头来重温一下责任链模式。本文教你如何优雅地使用责任链模式。

2020-07-25 19:16:04

Spring Boot使用AOP的正确姿势

一、为什么需要面向切面编程?面向对象编程(OOP)的好处是显而易见的,缺点也同样明显。当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录、性能监控等,如果采用面向对象编程的方法,需要在每个对象里面都添加相同的方法,这样就产生了较大的重复工作量和大量的重复代码,不利于维护。面向切面编程(AOP)是面向对象编程的补充,简单来说就是统一处理某一“切面”的问题的编程思想。如果使用AOP的方式进行日志的记录和处理,所有的日志代码都集中于一处,不需要再每个方法里面都去添加,极大减少了重复代码。二

2020-07-22 22:56:57

分布式任务调度平台XXL-JOB快速搭建教程

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。它的有两个核心模块,一个模块叫做调度中心,另外一个模块叫做执行器,它把任务调度和任务执行分成两个部分。本文从准备工作、搭建“调度中心”、搭建“执行器”三个步骤进行快速搭建。

2020-07-12 21:26:42

【亲测管用】解决IDEA控制台Tomcat Localhost Log和Catalina Log乱码

本文通过修改配置文件解决IDEA控制台Tomcat Localhost Log和Catalina Log乱码问题。

2020-07-06 19:52:40

使用Host和Nginx把自定义域名映射到本地

在真实的线上环境中,一个网站需要域名和公网IP才可以访问。在本地代码调试的时候,可以利用系统提供的hosts文件来设置一个虚拟的域名,并利用Nginx将域名解析到指定的IP地址和端口。

2020-07-05 21:05:52

我的2019——菜鸟互联网找实习和工作记录

2019在干什么,在实习和找工作的旋律中飞快度过。说起这段历程,肯定首先是感谢。感谢在此过程中遇到的每家公司和每一个人,感谢给我机会的每家公司,有你们的认可,我觉得我还是有价值的;也要感谢拒绝我的公司,谢谢你们曾经看轻我,是你们的拒绝和不屑,鞭策我继续努力。第一份实习过完年回来学校,三月份开始准备找实习。师兄建议先找小公司练手,所以就投了一些小公司,但是吧,没有收到面试邀请,可能是自己菜,可能...

2019-12-31 20:50:30

Python网络爬虫——Appuim+夜神模拟器爬取得到APP课程数据

随着生产力和经济社会的发展,现在已经进入内容付费的时代。得到APP便是其中的代表作,本文用于爬取得到APP的课程数据,包括课程名称、作者、单价、学习人数等数据,可作为一个爬取APP数据的demo进行分享。

2019-10-27 16:56:47

用代码说话:如何在Java中实现线程

并发编程是Java语言的重要特性之一,“如何在Java中实现线程”是学习并发编程的入门知识,也是Java工程师面试必备的基础知识。本文从线程说起,然后用代码说明如何在Java中实现线程。

2019-08-28 22:12:47

用代码说话:synchronized关键字和多线程访问同步方法的7种情况

synchronized关键字在多线程并发编程中一直是元老级角色的存在,是学习并发编程中必须面对的坎,也是走向Java高级开发的必经之路。一、synchronized性质synchronized是Java提供的内置锁机制,有如下两种特性:互斥性:即在同一时间最多只有一个线程能持有这种锁。当线程1尝试去获取一个由线程2持有的锁时,线程1必须等待或者阻塞,知道线程2释放这个锁。如果线程2永远...

2019-08-24 16:59:48

RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群。受限于自身条件,本文使用VMware虚拟机的克隆功能克隆了两台服务器进行操作,仅作为一个demo,开发中可根据实际情况进行调整。

2019-08-03 19:52:07

RabbitMQ(三):RabbitMQ与Spring Boot简单整合

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。Spring Boot的兴起,极大地简化了Spring的开发,本文将使用Spring Boot与RabbitMQ进行简单整合,实现生产和消费消息。

2019-08-03 19:50:23

RabbitMQ(二):RabbitMQ高级特性

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要了解一下相关知识,《RabbitMQ(一):RabbitMQ快速入门》已经入门RabbitMQ,本文介绍RabbitMQ的高级特性。

2019-08-03 19:48:48

RabbitMQ(一):RabbitMQ快速入门

RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本文是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、常用交换器类型、用Docker安装RabbitMQ等。

2019-08-03 19:46:46

CentOS 7安装和配置HAProxy

本文记录在CentOS 7环境下使用源码安装的方式安装HAProxy。HAProxy简介HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很...

2019-07-19 20:34:52

使用Docker部署Spring Boot项目

本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。

2019-06-24 19:33:01

一文快速入门Docker

Docker提供一种安全、可重复的环境中自动部署软件的方式,拉开了基于与计算平台发展方式的变革序幕。如今Docker在互联网公司使用已经非常普遍。本文用十分钟时间,带你快速入门Docker。

2019-06-22 09:17:21

Xshell6 连接本地VMware中的CentOS 7

之前在本机安装了VMware虚拟机软件,并且安装了CentOS 7系统。经过一段时间的使用,发现在本机和虚拟机直接的切换不是很方便,或者说很不方便,比如说使用wget命令从某网站下载一个压缩包,一长串的网址,稍有不慎就会输入错误,作为程序员的你,是不是跟我一样,总是有Ctrl+C和Ctrl+V的冲动?然而,这个时候,Ctrl按键貌似不听话,总是不起作用,复制不过去,气不气?!今天,再一次遇到了...

2019-06-17 21:18:07

Linux(CentOS 7)安装JDK踩坑记录

CentOS7安装JDK 1.8踩坑记录——五个步骤轻松搞定JDK安装和环境变量的配置

2019-06-17 21:00:41

OpenJDK和JDK区别

今天在CentOS7中安装JDK的时候,在网上看了一些教程,教程里面都说要先删除CentOS自带了OpenJDK,我就很好奇,为什么一定要删除呢?究竟什么是OpenJDK?有什么作用呢?和正式的JDK有什么不同呢?

2019-06-16 23:18:11

Spring Boot整合Mybatis完成级联一对多CRUD操作

在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能。关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾[Spring Boot整合Mybatis并完成CRUD操作],这是本文操作的基础。本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作。

2019-06-06 15:50:16

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。