后台开发
文章平均质量分 75
风的博客
这个作者很懒,什么都没留下…
展开
-
tomcat的启动过程(从startup.bat谈起)
自己在做后台开发时,每次都是直接运行startup.sh。但是运行之后tomcat到底干了啥,自己也是一脸懵逼。于是专门去研究了研究tomcat启动过程。在此做个记录原创 2016-08-28 11:03:21 · 6319 阅读 · 0 评论 -
tomcat安全加载CLASS分析
前言在《通过tomcat源码查看其如何实现应用相互隔离》中,我介绍了在Bootstrap的init方法中,其中有关类加载器的执行有3步:初始化commonLoader、catalinaLoader和sharedLoader;将catalinaLoader设置为Tomcat主线程的线程上下文类加载器;线程安全的加载class。这篇博客就是介绍如何tomcat线程安全的加载class。安全加载C原创 2016-09-05 16:37:55 · 1202 阅读 · 1 评论 -
利用javadoc定制自己的接口文档(二)
上一篇我们介绍了doclet及其命令行选项,最后是自己自定义的doclet代码,思路很简单,就是利用doclet读取代码在方法上面的注解,然后将这些注解的值写到模板中,最后输出到指定位置。在第一代doclet中,自己将html模板,java模板,自定义标签名称等都写在一起,耦合性极强。这一篇就是利用freemarker将其中的模板从中抽出来,于是有了第二代doclet——freemarker原创 2016-08-21 16:46:44 · 1871 阅读 · 0 评论 -
利用javadoc定制自己的接口文档(一)
后台开发人员在对外提供接口时也需要提供接口文档,而文档维护是一件成本很高的事情,尤其是自己在公司实习的时候,最初使用的是excel做接口文档,更是被折磨的苦不堪言。这也是自己为什么下定决心设计这个接口文档框架。下面自己将用几篇博客来介绍自己的开发和迭代过程,这其中将设计javadoc,freemarker,和一些设计模式的应用。原创 2016-08-13 21:32:36 · 7470 阅读 · 1 评论 -
通过tomcat源码查看其如何实现热部署
前言看完《通过tomcat源码查看其如何实现应用相互隔离》, 关于tomcat是如何做到热部署的,相信不用说也能猜到个十之八九。简单讲就是定期检查是否需要热部署,如果需要,则将类装载器也重新装载,并且去重新装载其他相关类。代码分析首先来看一个后台的定期检查,该定期检查是StandardContext的一个后台线程,会做reload的check,过期session清理等等,这里的modified实际上原创 2016-09-01 17:09:52 · 772 阅读 · 0 评论 -
通过tomcat源码查看其如何实现应用相互隔离
tomcat之所以创造了一堆自己的classloader体系,其目的之一就是为了实现应用的相互隔离,而对于许多应用,需要有共享的lib以便不浪费资源。那么,tomcat是如何实现这些功能的呢?通过tomcat源码,我会为大家详细介绍原创 2016-09-01 17:04:35 · 4532 阅读 · 0 评论 -
tomcat context.xml文件配置<Loader delegate="true" />作用
都知道tomcat的类加载机制和jvm的类加载机制不同,但是却很少有人知道tomcat的类加载机制是有一个开关来控制它的加载顺序。这个开关,就是<Loader delegate="true">原创 2016-09-01 07:32:21 · 6511 阅读 · 0 评论 -
后台消息推送框架设计
最开始自己公司的后台推送系统只能是用户在线时推送,推送消息也不会保存,若用户离线,那么这条推送消息就再也无法获取。更让人头疼的是:推送的内容和推送系统是耦合在一起的,这样往往在改一处代码的同时,会出现意想不到的bug。着就更加坚定了自己要把推送代码重构的决心了。下面就是自己的整个设计过程和期间遇到的问题,写出来和大家分享一下,望大家多多指教。原创 2016-08-21 10:57:12 · 23639 阅读 · 6 评论 -
tomcat类加载体系
jvm中有一个很重要的模块,就是类加载机制,而且由于其双亲加载机制的设计,保证了java核心库的安全性,更进一步,保证了共享对象这一机制,从而达到信息的高度共享。有意思的是,java的ClassLoader并不是final的,也就是我们完全可以通过继承它而改写这个类加载体系,tomcat就是这么做的。这篇博客就是来介绍tomcat为了实现其实际的需求,改写类加载体系的。原创 2016-09-09 22:22:11 · 596 阅读 · 0 评论 -
利用javadoc定制自己的接口文档(三)
这一篇我将介绍自己是如何将注解名称从代码中抽出,如何设计model层的数据结构,如何将数据及文件的生成从doclet中抽出来,及针对freemarker模板针对这些数据结构所做的修改,从而有了第三代doclet——doclet3原创 2016-09-15 17:37:14 · 1391 阅读 · 1 评论