觉悟吧,少年!

——认真编码,认真生活!

排序:
默认
按更新时间
按访问量

Tomcat源码分析-JMX(下)

背景上一节分析了Registry类的功能,其引用management包中所有的类,也就是JDK支持JMX功能的类,本节将继续分析类图的其他部分。类图分析JMX的类图截取如下:分析类图得到几点信息如下: 第一,JmxBeanServer和DefaultMBeanServerInterceptor类...

2017-06-25 09:20:47

阅读数:1251

评论数:2

Tomcat源码分析-JMX之Registry类(中)

背景“Tomcat源码分析-StandardServer类”,这一篇文章的分析中,我们知道StandardServer类的实例被注册到JMX的服务器的过程,是通过Tomcat定义的Registry类完成的,那么这个类又是如何完成JMX相关功能的呢,本文就记录一下本人在源码跟踪过程中的分析结果。流程...

2017-06-23 15:29:09

阅读数:1273

评论数:0

Tomcat源码分析-JMX(上)

背景从LifecycleMBeanBase 类分析那一篇文章中,我们已经知道 Tomcat的所有的组件都实现了JmxEnable接口,并且在初始化过程中通过Registry类注册成为Java Managed Bean 了。那么JMX在Tomcat是的运用原理是什么呢?今天就这个问题进行了实践和探...

2017-06-22 18:09:52

阅读数:449

评论数:0

Tomcat源码分析-catalina.home和catalina.base

背景Bootstrap启动的时候使用了两个系统变量catalina.home和catalina.base,从官网和源码中的注释可以知道这两者的区别主要是:catalina.home是Tomcat产品的安装目录,而catalina.base是tomcat启动过程中需要读取的各种配置及日志的根目录。默...

2017-06-20 09:19:46

阅读数:1881

评论数:0

Tomcat源码分析-StandardServer类

类概况StandardServer类是Tomcat初始化流程中的第一个组件,本章需要结合“Tomcat源码分析-初始化流程” 的时序图继续看。时序图中Catalina类调用了StandardServer类的init方法,而这个模版方法是调用子类的initInternal类的,所以该类着重关注这个方...

2017-06-19 17:37:42

阅读数:698

评论数:0

网易邮箱被盗用记录

背景早上导出在icloud上导出通讯录操作时,执行解除手机的双重验证功能,需要输入验证邮箱,就输入另一个2007年注册的邮箱帐号,登录该邮箱查看验证码的时候,发现该邮箱有大量退信邮件高达3000多封。 查看帐号登录信息,正好是昨天到今天凌晨4点期间,帐号有异常登录。异常登录都是通过POP3方式,...

2017-06-18 08:21:54

阅读数:761

评论数:0

Tomcat源码分析-LifecycleMBeanBase

类概况关注这个类是因为上一回跟踪了AccessLogValve类,它是LifecycleMBeanBase的一个子类,搞清楚这个类的各个子类结构,也就理顺了Tomcat容器中各个组件的协助流程了。管中窥豹,还是先从这个顶层抽象类开始吧。 这个类的结构很简单,类图绘制如下:父类LifecycleB...

2017-06-16 14:21:19

阅读数:656

评论数:0

Tomcat源码分析-AccessLogValve类

类概况Tomcat的server.xml中,Host节点的子元素名称是Valve,用来定义一系列的处理器,AccessLogValve就是用来记录容器访问请求的日志处理类。Valve,本意是阀门的意思,AccessLogValve是处理生成访问日志的,梳理它的类图如下: 它的所有的成员变量大多都...

2017-06-15 18:39:52

阅读数:1590

评论数:0

项目总结-Linux下批量删除无用文件

背景有一个功能,需要定期清理指定文件夹下指定日期的无用文件,文件的存储格式是目录/yyyyMMddHH/xx.txt,文件夹以小时命名的,现在要定期删除某些日期的文件。用java调用Shell命令的rm -rf 目录/日期*的方式总数不成功,初步判断正则表达式没有匹配成功,所以没有执行删除操作。解...

2017-06-13 09:51:02

阅读数:424

评论数:0

高考和我的职业之路

前天高考,也正好是我高考结束10年,我是2007年6月7日参加高考的,想想我的成长之路,有几分幸运,也不免心酸,趁着这个高考的话题,我也来理理自己19岁到29岁这十年的成长之路吧。        高中的时候没有人关注过心理问题,在那些只有漫天书卷的日子里,我不可避免地患上了考前综合症,每到大考之前...

2017-06-10 14:02:08

阅读数:496

评论数:0

简单东西-Nginx实现Tomcat负载均衡

基本概念百度百科上定义Nginx是这样的: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамбле...

2017-06-08 14:45:01

阅读数:389

评论数:0

Tomcat源码分析-Java原生态log运用

背景调试tomcat源码过程中,控制台日志打印的都是INFO级别的日志,于是就想修改下日志级别,打印Digester类的DEBUG级别的日志,便于观察Digester类解析server.xml的流程,顺便跟踪了一下tomcat使用日志的流程,整理如下。使用方法Java提供了原生态的日志工具包jav...

2017-06-07 16:19:02

阅读数:473

评论数:0

Tomcat源码分析-初始化流程

主要类图Tomcat的Bootstrap类关联的几个主要类整理如下:初始化入口类是Catalina,它的load()完成初始化所有类的过程,主类StandardServer类有两个父类,它提供了生命周期的管理方法,同时也具有ManagedBean的功能。 进一步分析得到初始化过程中的时序图。初始...

2017-06-06 16:15:33

阅读数:624

评论数:0

架构启示录

背景2017年6月3日,本人参加了一个培训机构组织的架构分享大会,大会的主题是“一言以蔽之,十年架构之路汇成一句话”,八位一线专家现场畅谈对软件架构的理解和体会,剖析和分享架构实践过程中的难忘的问题。我这种井底之蛙,听完之后果犹如醐醍灌顶,眼界大开。 同行同事归程途中感慨以前工作都荒废了...

2017-06-05 15:26:52

阅读数:494

评论数:0

Tomcat源码分析-CatalinaProperties类

功能这个类很简单,就是一个属性获取的公共类。但是用法却很巧妙,代码相当优雅,所以忍不住想要再说说这个类。它的功能是管理catalina.properties类文件中的配置属性获取,只有一个方法getPropertity(String name).代码结构类图和流程图如下:代码启示录我认为这个类的高...

2017-06-05 11:25:23

阅读数:557

评论数:0

Tomcat源码分析-Bootstrap类

背景本人真正从事Java开发工作已经五年了,最近一直在思考五年的工作经历,技术应该达到一个什么样的水平的呢。运用SWOT方法,剖析了一下自己目前的现状: 1 能快速熟悉一个项目,厘清项目框架、主要功能模块,找到值得学习的设计思想,发现明显的设计缺陷。 2 有代码洁癖,看到烂代码就有重构的...

2017-06-02 17:57:53

阅读数:763

评论数:0

MySQL修改密码

许久不用MySQL了,今天打开HediSQL连接MySQL时发现root密码忘记了,修改密码操作捣鼓了一阵子,记录一下,以备后用。(Win10本机操作)1 关闭MySQL服务:net stop MySQL 2 以管理员身份打开cmd控制台窗口,进入MySQL所在目录的bin目录,执行mysqld ...

2017-06-01 10:15:02

阅读数:241

评论数:0

Linux环境下JFreeChart图表标题乱码问题

问题背景本地测试环境生成的JFreeChart图表标题正常显示,最初几轮Linux服务器上测试的图表也没有问题。上周无意间发现测试服务器上生成的报表文件中的JFreeChart图表的中文标题是几个框框没有文字,百度说是字体安装问题。 对比一看那台测试服务器上的确没有字体。于是开始对着网上说...

2017-05-28 20:56:50

阅读数:697

评论数:0

Linux基础应用

近期工作中运用Linux命令组合获取机器信息的几个命令整理:获取本机IP获取本机IP,主要是用ifconfig命令,结合正则,及awk命令进行截取。执行操作如下: 发现awk命令特别好玩,是基于行单位的,默认以空格、tab键分割,打印序号从1开始的。设置分隔符可用-F(file...

2017-05-27 09:58:31

阅读数:203

评论数:0

Linux下IP设置脚本实践

背景      一个java web项目有一个功能是IP修改,Linux的IP修改脚本如下: #!/bin/bash #useing parameter ip:netmask:gateway:dns1 #system version:centos6,7/redhat6,7 #r...

2017-05-25 13:38:00

阅读数:270

评论数:0

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