架构师学习之路2框架分析之jfinal2.0——2

原创 2015年07月11日 09:27:48

这篇文章分析jfinal初始化过程。断点调试所有过程

入口

	<filter>
		<filter-name>jfinal</filter-name>
		<filter-class>com.jfinal.core.JFinalFilter</filter-class>
		<init-param>
			<param-name>configClass</param-name>
			<param-value>demo.DemoConfig</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>jfinal</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

标明入口为:
com.jfinal.core.JFinalFilter
配置参数类:

demo.DemoConfig

OK正式开始

1.com.jfinal.core.JFinalFilter.init 方法开始断点
第一个方法:createJFinalConfig(filterConfig.getInitParameter("configClass"));

  filterConfig.getInitParameter("configClass"):获得web.xml配置文件中configClass的参数值

  createJFinalConfig(String configClass): 根据configClass获得配置

 temp = Class.forName(configClass).newInstance();通过反射获得配置类
 jfinal.init(jfinalConfig, filterConfig.getServletContext()):JFinal的初始
   initPathUtil(); 初始化根路径

   Config.configJFinal(jfinalConfig);    // start plugin and init logger factory in this method

  采用命令模式;传入类,执行类方法

jfinalConfig.configConstant(constants);				        initLoggerFactory();//初始化日志
		jfinalConfig.configRoute(routes);
		jfinalConfig.configPlugin(plugins);			startPlugins();	// very important!!!
		jfinalConfig.configInterceptor(interceptors);
		jfinalConfig.configHandler(才s);
初始化
constants 配置
<pre name="code" class="java">routes 路由
<pre name="code" class="java">plugins 插件
interceptors 拦截器
<pre name="code" class="java">handlers 处理器


   Handler 会接管所有请求,包括静态请求,如  localhost/css/style.css 或者 locahost/img/logo.jpg,并且可以改变请求所指向的资源参数如 String target参数,所以 Handler 具有可以处理更多的事情,例如改变 target 参数做url 伪静态或者 url 重写。

   而全局拦截器只能拦截对 action 的请求,对静态资源的请求是完全无法感知的,并且拦截器无法改变 starget 参数,当拦截发生时,很多事情已经确定了,例如拦截的 controller 和 action 都确定了。

jfinalConfig.configConstant(constants);	
配置常用属性jfinal常用配置项,加载配置文件和设置某项值

未完待续






























架构师学习之路2框架分析之jfinal2.0——1

这章开始,我尝试分析一下快速开发框架jfinal http://www.jfinal.com/ JFinal有如下主要特点: MVC架构,设计精巧,使用简单 遵循COC原则,零配置,无xml 独...
  • zsr251
  • zsr251
  • 2015年07月06日 13:45
  • 619

系统架构师成长之路(一)

系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的。做为一个职场新人,如何发展成为架构师,架构师都需要具备哪些素质?...
  • sunlei1980
  • sunlei1980
  • 2016年05月07日 19:23
  • 6468

Java进阶之路——从初级程序员到架构师,从小工到专家

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,希望这篇文章会是你看到过的最全面最权威的回答。...
  • anmiaochu
  • anmiaochu
  • 2016年07月20日 16:57
  • 28717

架构师之路-写的不错

架构师之路 转:http://www.uml.org.cn/zjjs/200903273.asp 1、引言 机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只...
  • zax0zax
  • zax0zax
  • 2013年05月24日 10:16
  • 1564

外挂学习之路(2)--- 老生常谈“基地址”

1 第一步当然是开游戏,有CE载入它的进程(看图)  2 搜你要搜的值,一般用默认的那个(整数,4字节) 比如搜金钱,就输入金钱数,一开始会有很多个,这时要改变下金钱的数(捡...
  • liujiayu2
  • liujiayu2
  • 2017年02月06日 13:22
  • 794

Python学习之路之二

距离第一天开始这课课程已经过了两三天,才陆陆续续将第二章选择了一部分实践完成。 我的耐心啊,好让人捉急……言归正传,来写一写第二章的学习过程。 第二章主要是爬虫(Crawler)实践,有些代码由于...
  • fc201166
  • fc201166
  • 2017年07月09日 16:55
  • 267

一.求生之路2服务器的搭建(Windows)

下载游戏1.先去下载个在服务器上下载游戏的工具.(服务器不用安装Steam客户端)所以要借助这个工具SteamCMD 下载steamCMD的网站 直接下载steamCMD的压缩包 2.解压出来 3....
  • u013792369
  • u013792369
  • 2016年11月05日 10:25
  • 7324

架构师之路16年精选50篇

2016精选索引,点击标题阅读相关文章。 【方法论】 《秒杀系统架构优化思路》 《分布式ID生成器》 《互联网架构,如何进行容量设计》 《线程数究竟设多少合理》 《单点系统架构的可...
  • a314773862
  • a314773862
  • 2017年02月13日 19:05
  • 4913

求生之路2服务器指令比较全

bind "b" "say !buy"  绑定 // 远程连接密码 rcon_password 256 net_graph 1 游戏显示FPS+ping的命令 打开控制台输入Sv_Cheats...
  • qq_30274105
  • qq_30274105
  • 2016年08月23日 09:58
  • 7743

如何成为一名架构师,架构师成长之路

我理解的架构师需要掌握的知识 1. 业务模块切分能力.领域设计能力. 2. 类设计和编程落地能力. 能写高可读和应对变化,可维护代码. 3. 看别人代码能力,可重构点能力. 分层不合适,方法抽取, ...
  • fei33423
  • fei33423
  • 2017年03月13日 22:50
  • 2242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:架构师学习之路2框架分析之jfinal2.0——2
举报原因:
原因补充:

(最多只允许输入30个字)