关闭

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

背景Bootstrap启动的时候使用了两个系统变量catalina.home和catalina.base,从官网和源码中的注释可以知道这两者的区别主要是:catalina.home是Tomcat产品的安装目录,而catalina.base是tomcat启动过程中需要读取的各种配置及日志的根目录。默认情况下catalina.base是和catalina.home是相同的,本章就为了解决本人看到这两个东...
阅读(1421) 评论(0)

Tomcat源码分析-StandardServer类

类概况StandardServer类是Tomcat初始化流程中的第一个组件,本章需要结合“Tomcat源码分析-初始化流程” 的时序图继续看。时序图中Catalina类调用了StandardServer类的init方法,而这个模版方法是调用子类的initInternal类的,所以该类着重关注这个方法即可。类图绘制如下:主要流程初始化流程主要通过该类的initInternal方法完成的,而它的star...
阅读(496) 评论(0)

网易邮箱被盗用记录

背景早上导出在icloud上导出通讯录操作时,执行解除手机的双重验证功能,需要输入验证邮箱,就输入另一个2007年注册的邮箱帐号,登录该邮箱查看验证码的时候,发现该邮箱有大量退信邮件高达3000多封。 查看帐号登录信息,正好是昨天到今天凌晨4点期间,帐号有异常登录。异常登录都是通过POP3方式,不知道这是否跟我设置了邮箱的POP3服务有关,前段时间因为项目中的邮箱服务功能,开启了该帐号的POP3服...
阅读(371) 评论(0)

Tomcat源码分析-LifecycleMBeanBase

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

Tomcat源码分析-AccessLogValve类

类概况Tomcat的server.xml中,Host节点的子元素名称是Valve,用来定义一系列的处理器,AccessLogValve就是用来记录容器访问请求的日志处理类。Valve,本意是阀门的意思,AccessLogValve是处理生成访问日志的,梳理它的类图如下: 它的所有的成员变量大多都跟日志文件写入操作有关。使用方法tomcate的默认配置为: <Valve className="org...
阅读(1155) 评论(0)

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

背景有一个功能,需要定期清理指定文件夹下指定日期的无用文件,文件的存储格式是目录/yyyyMMddHH/xx.txt,文件夹以小时命名的,现在要定期删除某些日期的文件。用java调用Shell命令的rm -rf 目录/日期*的方式总数不成功,初步判断正则表达式没有匹配成功,所以没有执行删除操作。解决办法编写一个Shell脚本文件来删除,参数传递需要删除的日期列表,然后循环拼接删除命令完成操作,如下S...
阅读(356) 评论(0)

高考和我的职业之路

前天高考,也正好是我高考结束10年,我是2007年6月7日参加高考的,想想我的成长之路,有几分幸运,也不免心酸,趁着这个高考的话题,我也来理理自己19岁到29岁这十年的成长之路吧。        高中的时候没有人关注过心理问题,在那些只有漫天书卷的日子里,我不可避免地患上了考前综合症,每到大考之前,必定辗转失眠,势必影响第二天的考试,考试结果依旧不会太好,如此往复,直到高考前夕。毫无悬念,即使...
阅读(363) 评论(0)

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

基本概念百度百科上定义Nginx是这样的: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,...
阅读(327) 评论(0)

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

背景调试tomcat源码过程中,控制台日志打印的都是INFO级别的日志,于是就想修改下日志级别,打印Digester类的DEBUG级别的日志,便于观察Digester类解析server.xml的流程,顺便跟踪了一下tomcat使用日志的流程,整理如下。使用方法Java提供了原生态的日志工具包java.util.logging,功能虽然没有log4j强大,但是够用了,我想这也是tomcat使用原生日志...
阅读(392) 评论(0)

Tomcat源码分析-初始化流程

主要类图Tomcat的Bootstrap类关联的几个主要类整理如下:初始化入口类是Catalina,它的load()完成初始化所有类的过程,主类StandardServer类有两个父类,它提供了生命周期的管理方法,同时也具有ManagedBean的功能。 进一步分析得到初始化过程中的时序图。初始化时序图 start方法包括两个步骤,load和start。load操作最终转换为Catalina类的...
阅读(430) 评论(0)

架构启示录

背景2017年6月3日,本人参加了一个培训机构组织的架构分享大会,大会的主题是“一言以蔽之,十年架构之路汇成一句话”,八位一线专家现场畅谈对软件架构的理解和体会,剖析和分享架构实践过程中的难忘的问题。我这种井底之蛙,听完之后果犹如醐醍灌顶,眼界大开。 同行同事归程途中感慨以前工作都荒废了,需要学习补课了。我也是这样想的啊,说来也挺巧,最近也是开始反思个人能力水平,开始关注软件架构,正好单位...
阅读(401) 评论(0)

Tomcat源码分析-CatalinaProperties类

功能这个类很简单,就是一个属性获取的公共类。但是用法却很巧妙,代码相当优雅,所以忍不住想要再说说这个类。它的功能是管理catalina.properties类文件中的配置属性获取,只有一个方法getPropertity(String name).代码结构类图和流程图如下:代码启示录我认为这个类的高明之处就是充分使用了配置属性,配置文件路径可配置,即流程图的第一个操作,是从环境变量中获取的配置文件路径...
阅读(305) 评论(0)

Tomcat源码分析-Bootstrap类

背景本人真正从事Java开发工作已经五年了,最近一直在思考五年的工作经历,技术应该达到一个什么样的水平的呢。运用SWOT方法,剖析了一下自己目前的现状: 1 能快速熟悉一个项目,厘清项目框架、主要功能模块,找到值得学习的设计思想,发现明显的设计缺陷。 2 有代码洁癖,看到烂代码就有重构的冲动,深受代码重构、代码简洁之道等Java经典著作的毒,写代码的时候简直会有“我是作家,我的代码我做主”...
阅读(332) 评论(0)

MySQL修改密码

许久不用MySQL了,今天打开HediSQL连接MySQL时发现root密码忘记了,修改密码操作捣鼓了一阵子,记录一下,以备后用。(Win10本机操作)1 关闭MySQL服务:net stop MySQL 2 以管理员身份打开cmd控制台窗口,进入MySQL所在目录的bin目录,执行mysqld --skip-grant-tables 3 再另开一个cmd窗口直接执行mysql命令(由于2操作已经是...
阅读(210) 评论(0)

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

问题背景本地测试环境生成的JFreeChart图表标题正常显示,最初几轮Linux服务器上测试的图表也没有问题。上周无意间发现测试服务器上生成的报表文件中的JFreeChart图表的中文标题是几个框框没有文字,百度说是字体安装问题。 对比一看那台测试服务器上的确没有字体。于是开始对着网上说明进行Liunx下字体安装操作,但是还是踩了坑了,记录如下。字体命令安装网上说Linux下安装字体需要依...
阅读(416) 评论(0)
138条 共10页首页 上一页 1 2 3 4 5 ... 下一页 尾页