架构师学习之路2框架分析之jfinal2.0——2
2015-07-11 09:27
651 查看
这篇文章分析jfinal初始化过程。断点调试所有过程
入口
标明入口为:
OK正式开始
1.com.jfinal.core.JFinalFilter.init 方法开始断点
第一个方法:createJFinalConfig(filterConfig.getInitParameter("configClass"));
filterConfig.getInitParameter("configClass"):获得web.xml配置文件中configClass的参数值
createJFinalConfig(String configClass): 根据configClass获得配置
Config.configJFinal(jfinalConfig); // start plugin and init logger factory in this method
采用命令模式;传入类,执行类方法
Handler 会接管所有请求,包括静态请求,如 localhost/css/style.css 或者 locahost/img/logo.jpg,并且可以改变请求所指向的资源参数如 String target参数,所以 Handler 具有可以处理更多的事情,例如改变 target 参数做url 伪静态或者 url 重写。
而全局拦截器只能拦截对 action 的请求,对静态资源的请求是完全无法感知的,并且拦截器无法改变 starget 参数,当拦截发生时,很多事情已经确定了,例如拦截的 controller 和 action 都确定了。
未完待续
入口
<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常用配置项,加载配置文件和设置某项值
未完待续
相关文章推荐
- 大型网站系统架构演化之路
- 《架构之美》笔记
- 58沈剑:秒杀系统架构优化思路
- 网站流量统计,java+jsp 获取访客浏览器,真实ip,操作系统,来源
- 11个超棒的iOS开发学习网站
- 慢慢理解RESTful架构
- Win7用IIS发布网站系统 部署项目
- 优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记
- ADF skins网站
- 独家专访梁远华:架构师需要广泛的知识面
- 软件的架构与模式之经典架构模式简介
- 健壮且可读的安卓架构设计
- Azure 网站、云服务和虚拟机比较
- 用Jfinal开发的一个网站
- 网站设计需要做好的策划工作
- 梦维-iOS学习网站-很牛
- 写的比较规范的网站
- WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
- (三层架构入门)最基本的三层架构搭建方法(详细过程及所有代码)
- 云端开源⾼性能技术架构调研分析报告