摘要: 背景 最近发现团队中一些同学对如何排查一个bug,思路不够清晰。本文随笔整理:常规情况下,我们是如何排查一个bug的。 1. 弄清楚问题 有些人看到“弄清楚问题”,可能会觉得好笑,这不是废话吗? 实际上,我遇到很多同学连问题都没搞清楚,就开始在排查问题,继续追问是如何排查的,回答更是模糊。 我们首先 阅读全文
posted @ 2021-10-12 23:30 nick_huang 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 背景 在项目中使用Spring的Bean,一般都使用默认的Bean的单例,并且结合@Autowire使用。 实在有同一个类型多个实例的情况,也使用@Qualifier或@Resource实现注入。 所以,对@Autowire的注入规则并不是特别的清楚。 今天突然想起这个疑惑,就用简单的实验确认一下。 阅读全文
posted @ 2021-10-12 23:29 nick_huang 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 背景 一个版本从开始开发到上线,可能经历10多天,甚至更久。 由于这个过程的时间较长,难免出现某些需要执行的SQL脚本、需要配置的配置项,到了上线前,却被遗漏了,最后导致出现线上问题才发现。 我们团队也出这种情况发生,我们想了个比较笨的办法,虽然笨,但终究还是有些作用。 开发人员提测前登记「除代码外 阅读全文
posted @ 2021-10-12 23:29 nick_huang 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 前言 本文记录后台服务端开发人员常用的网络命令,本文随笔记录,内容较少,随着学习更新,请见谅。 ping - 常用于检测与其他主机是否网络连通 ping,全称 Packet Internet Groper,即因特网包探索器。 常用于检测与其他主机是否网络连通。 示例: ping www.baidu. 阅读全文
posted @ 2021-10-12 23:28 nick_huang 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 背景 Spring 在 Java 生态的企业级开发项目中极其常用,通常我们为项目引入一项新技术时,不得不考虑如何将新技术与 Spring 整合在一起。 我们知道,预研一项新技术,我们基于 MVP(最简化可实行产品)原则,有助于使我们聚焦在新技术本身,也可以避免其他问题的干扰。 所以,我们经常需要搭建 阅读全文
posted @ 2021-10-12 23:26 nick_huang 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 背景 有时候,我们在上线某些特性时,可能需要提前初始化数据,才能使功能正常运作。 初始化数据,常用的有以下两种途径: 单纯为了这个初始化数据,开发一个Excel文件导入功能 开发人员维护SQL语句初始化数据 这两种途径都有优缺点: 第1种途径,使用方便,可重复导入不同的数据,但是开发成本高; 第2种 阅读全文
posted @ 2021-10-12 23:20 nick_huang 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 背景 在Scrum中,有“每日站会”这一活动,是开发团队每天在固定的时间进行检视和调整活动的会议。 这个会议一般是每日站着进行的,所以一般叫“每日站会”。 “每日站会”,需要团队成员轮流讲述3个问题: 昨天我完成了什么? 今天我计划完成什么? 遇到什么阻碍? 在团队成员讲述这3个问题的时候,有几个注 阅读全文
posted @ 2021-10-12 23:17 nick_huang 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 背景 因为是技术博客,所以标题为“如何组织技术会议”; 其实内容不仅仅针对技术会议,也适用于普通会议。 会议前 很多同学觉得组织会议,就是到了会议时间,大家聚在一块讨论事情就完了,没有啥好关注的,其实组织好一个会议还是有许多东西需要提前做的。 会议邀请 在会议前,我们需要确定以下信息,然后发出会议邀 阅读全文
posted @ 2021-08-16 23:56 nick_huang 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 背景 我们在运维企业级应用时,会遇到很多Bug。 有时候,测试人员或业务方反馈bug,描述得不够详细,我们基于他的描述很难清晰地了解情况,以解决bug。 一般情况下,我们会跟他询问更多的详情,才能知悉更多细节,以辅助排查问题。 而这个询问过程,比较花时间,如果我们能提供一个模板,告诉测试人员或业务方 阅读全文
posted @ 2021-08-14 18:05 nick_huang 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 前言 在这个信息技术发展迅速的时代,万万没想到,Spring自2003年发展至今,仍是技术选型中的首选,某些项目甚至有Spring全家桶的情况。 在Java开发者面试当中,Spring的原理也常被面试官用于考察候选人的技术深度,同时也能反映候选人对技术是否有热情,是否具有探索精神。 本文带着一个开发 阅读全文
posted @ 2020-11-05 23:41 nick_huang 阅读(834) 评论(1) 推荐(1) 编辑
摘要: 首先,坐好准备工作,在feature-resolve-conflict分支上作如下改动: 在master分支作如下改动: 假如现在我们需要将master分支合并到feature-resolve-conflict分支。 1、首先拉到最新的feature-resolve-conflict代码 2、然后右 阅读全文
posted @ 2020-07-23 23:39 nick_huang 阅读(13678) 评论(0) 推荐(1) 编辑
摘要: 最近在使用Wildfly作为Web服务器,用的是10.0.0版本。默认情况下,Wildfly的部署方式是通过将项目放到 下的,然后Wildfly会自动部署,这就是它的自动部署模式。 Wildfly的部署模式分为两种: 自动部署模式 手动部署模式 而Wildfly官方推荐哪种方式,可见 下的 文档。 阅读全文
posted @ 2019-01-10 23:58 nick_huang 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 类继承结构图 看不明白此图不要紧,后面慢慢提到此图的类: AbstractFilter,抽象过滤器 它实现Filter、继承ServletContextSupport。 它主要实现了 方法,此方法主要设置了本类的 和`ServletContextSupport ServletContext serv 阅读全文
posted @ 2018-08-21 00:37 nick_huang 阅读(1907) 评论(0) 推荐(0) 编辑
摘要: 本文为翻译文,原文地址: "http://shiro.apache.org/10 minute tutorial.html" 介绍 欢迎来到Apache Shiro的10分钟教程! 通过这个教程,你会明白一个开发人员如何在他们的应用中使用Shiro,并且你也能够在10分钟内做到。 概述 什么是Apa 阅读全文
posted @ 2018-03-17 20:38 nick_huang 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 本文为翻译文,原文地址: "https://docs.nginx.com/nginx/admin guide/web server/reverse proxy/" 本文描述代理服务器的基本配置。你能学到如何将一个请求在不同的协议上从nginx转发到被代理服务器,如何修改被转发到被代理服务器的客户端的 阅读全文
posted @ 2018-03-15 23:46 nick_huang 阅读(458) 评论(0) 推荐(1) 编辑
摘要: 本文为翻译文,原文地址: "http://nginx.org/en/docs/http/load_balancing.html" 介绍 将请求负载均衡到多个应用实例是一个常用的技术,它起到优化资源使用率、最大化吞吐量、降低延迟、保证容错性。 Nginx是一个非常有效的HTTP负载均衡工具,它将请求分 阅读全文
posted @ 2018-03-15 23:39 nick_huang 阅读(401) 评论(0) 推荐(0) 编辑
摘要: Nginx的安装 下载、解压 从 "Nginx" 下载安装包,我下的是 。解压后的目录为: 依赖的软件 安装之前把依赖的软件装上,我这里用 :`yum y install gcc gcc c++ pcre pcre devel zlib zlib devel openssl openssl deve 阅读全文
posted @ 2018-03-15 23:06 nick_huang 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 上次自己搭建Quartz已经是几年前的事了,这次项目中需要定时任务,需要支持集群部署,想到比较轻量级的定时任务框架就是Quartz,于是来一波。 版本说明 通过搜索引擎很容易找到其官网,来到Document的页面,当前版本是2.2.x。 简单的搭建操作 通过Maven引入所需的包: 通过quartz 阅读全文
posted @ 2018-02-21 13:05 nick_huang 阅读(44225) 评论(6) 推荐(7) 编辑
摘要: 注解简单来说就是配置,是特别的配置,之前常用的配置文件,可以用注解替换。然后通过反射去获取注解的信息。 如何定义一个注解 你在IDE中新建一个注解定义,是这样的结构的: 然后大概有4个对上述结构加上一些配置,当然,这配置是以注解的形式添加的=_=! 此注解使用在哪里 此注解会应用的哪里,可通过如下配 阅读全文
posted @ 2017-12-30 21:29 nick_huang 阅读(380) 评论(0) 推荐(1) 编辑
摘要: 背景 Bean的拷贝一直有一些类可以使用,比如Apache的 或者Spring的 。 根据定义的白名单字段进行Bean的拷贝 我需要一个只拷贝我指定的字段的Bean拷贝,而Spring的 提供如下几个方法: 其中第2、3个是可以指定属性的,第2个指定可以通过Class指定,基本满足我的需求;第3个指 阅读全文
posted @ 2017-12-30 17:45 nick_huang 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 简化定义匿名实现类 匿名实现类的传统方式 创建一个线程,需要实现 接口,并实现 方法,用传统的方式是这样的: 无参数、单语句方法体 用lambda可以简化成这样: 所以也可以这样: 所以,没参数、单语句的是这样的: 无参数、多语句方法体 当然实现方法中有多条语句的情况下,应该是这样的: 多参数、多语 阅读全文
posted @ 2017-09-17 21:58 nick_huang 阅读(402) 评论(0) 推荐(1) 编辑
摘要: 注意 本文的代码,为了学习方便,简化代码复杂度,未考虑拆包、粘包等情况的处理。所以仅供学习使用,不能用于实际环境。 阻塞IO,BIO Java1.1发布的IO是BIO。阻塞地连接之后,通过流进行同步阻塞地通讯。 同步阻塞连接 因同步阻塞地监听连接,如果服务端只有单线程进程处理,每个请求必须等待前一请 阅读全文
posted @ 2017-09-09 13:58 nick_huang 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 使用github一段时间,一直使用的是可视化工具,配合公司转用git,提前联系下git的命令。 安装 windows上安装git 从 "git for windows" 下载安装包,我下的是 ,按默认选项安装。 安装完毕后,用命令查下版本看是否安装正常: 常用命令 创建新仓库 新建一个文件夹,比如 阅读全文
posted @ 2017-09-08 20:56 nick_huang 阅读(297) 评论(0) 推荐(0) 编辑
摘要: HashMap是常用的集合类,以Key Value形式存储值。下面一起从代码层面理解它的实现。 构造方法 它有好几个构造方法,但几乎都是调此构造方法: 放入元素,put(K key, V value) 实际的逻辑在putVal方法: 通过hash和数组长度计算数组下标,indexFor(int h, 阅读全文
posted @ 2017-08-21 16:17 nick_huang 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列 阻塞队列有几个实现: ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue SynchronousQueue LinkedTransferQueue LinkedBlockingDeque 他们的共同 阅读全文
posted @ 2017-08-19 00:05 nick_huang 阅读(369) 评论(0) 推荐(0) 编辑