jfinal北京-赛车网站源码搭建研究之核心组件Plugin

相比较北京-赛车网站源码搭建于其他核心组件,jfinal对Plugin的处理可谓是相当简洁了。这一点从Plugin组件的核心接口IPlugin的定义中可见一斑。

  1. 定义

/**

  • IPlugin
    */
    public interface IPlugin {
    boolean start();
    boolean stop();
    }

    1
    2
    3
    4
    5
    6
    7

    对于Plugin,jfinal给予了足够的地位——顶级packagecom.jfinal.plugin。
    需要注意到的一点就是plugin机制中,jfinal在其中只负责plugin的启动和停止,具体的实现逻辑,以及plugin的应用则是完全交由外界来自主决定。
    另外观察com.jfinal.plugin包结构也能察觉出jfinal对plugin的组织方式以及设计思路。而且从这个package结构也可以看出,一般的项目基本上也就这么几个需求。(其中auth中还没有完成,看思路应该是自定义Session的构建)。
    package结构

  1. 继承链

看完了定义,接下来我们按照之前的习惯来看看Plugin的继承链体系。
继承链
3.1 ActiveRecordPlugin

作为 JFinal 最核心的组成部分之一的ActiveRecord 正是由这个Plugin启动的,重要性就不言而喻了。

public boolean start() {
if (isStarted) {
return true;
}
// 配置数据源
if (config.dataSource == null && dataSourceProvider != null) {
config.dataSource = dataSourceProvider.getDataSource();
}
if (config.dataSource == null) {
throw new RuntimeException("ActiveRecord start error: ActiveRecordPlugin need DataSource or DataSourceProvider");
}
// 解析jfinal 3.0起加入的sql 管理模块
config.sqlKit.parseSqlTemplate();
// build the mapping of model between class and table
new TableBuilder().build(tableList, config);
DbKit.addConfig(config);
isStarted = true;
// 返回true, 告知jfinal本Plugin启动成功
return true;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

3.2 C3p0Plugin / DruidPlugin / HikariCpPlugin

把这三个Plugin都是数据库连接池工具。核心逻辑就是DataSource实例的构建。
3.3 EhCachePlugin/ RedisPlugin

缓存实现。
3.3 Cron4jPlugin

定时任务实现。本类上的官方文档上有详细的使用说明,使用者都不用百度了。

  1. 生命周期

最后让我们看看plugin是如何融入jfinal的生命周期中的。
4.1 启动

JFinalFilter.init

> JFinal.init
> Config.configJFinal(jfinalConfig)
> Config.configPluginWithOrder(1, jfinalConfig);
> Config.startPlugins(); 【jfinal会依据用户配置(constants.setConfigPluginOrder()),在不同的 JFinalConfig.configXxxx之前启动Plugin。】

1
2
3
4
5

4.2 停止

JFinalFilter.destroy

> jfinal.stopPlugins()

1
2
  1. 总结

jfinal在框架层面对于Plugin的处理,只负责回调plugin的启动和停止;具体的实现逻辑,以及plugin的应用则是完全交由外界来完成。

极少的强制契约,使得Plugin拥有非常强大的灵活性来满足各种项目上的自定义需求。

原文地址:http://blog.51cto.com/13873739/2145195

时间: 2024-11-07 18:31:23

jfinal北京-赛车网站源码搭建研究之核心组件Plugin的相关文章

加州大学用机器学习北京赛车(PK10)源码出售算法来预测和分析梦境

[导读]梦是神秘的一种主体经验,是哲学.宗教.心理学等最感兴趣的话题北京赛车(PK10)源码出售  QQ2952777280[话仙源码论坛]hxforum.com[木瓜源码论坛]papayabbs.com,也产生了许多有关的科学猜想.但人类从未真正理解梦的内容.机制和作用.我们能不能设计一种机器学习算法来预测和分析我们的梦境呢?答案是肯定的.在AI的帮助下,理解.预测和控制梦境的技术上已经取得了进展. 你有没有做过令人不安的梦,梦见高中时认识的某个人?或者做过以某种特殊的方式预知未来的梦,比如预

不同云服务器的含义 幸运飞艇网站源码搭建详解

由于云服务物美价廉的映象已经深入人心,因此深受初涉互联网的站长的青睐.但是现在网上有各式各样且不同名称的云服务,比如,幸运飞艇网站源码搭建bbs.yasewl.com (q_917_899_899)阿里云.葵芳云等,让人分辨不清.因此葵芳idc小编今天就跟大家一起了解下不同类型云服务器的释义. 私有云 私有云是为一个企业或机构单独使用而构建的,可由企业自己的IT机构,也可由云提供商进行构建.使用此类“云”的企业可以控制基础设施上部署应用程序的方式,赋予企业对于云资源使用情况的极高水平的控制能力,

北京赛车彩票网站源码下载平台一条龙搭建安装过程详解

1. 系统需求需要最新源码,二次开发的联系202-101-8216=========================================== 1) 操作系统:Windows XP+IIS5.1 / Windows 2003+IIS6.0 / Windows 2008+IIS7.5 2) 数 据 库:SQL Server 2008 / SQL Server 2008 / SQL Server 2008 3) 其 他:FSO(FileSystemObject) 4) 使用Email功能,

HandlerThread 特点和北京pk10源码搭建解析

HandlerThread北京pk10源码网站搭建解析 因为源码很简短,这里就全部粘贴过来了. /** Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.*/public class HandlerThread extends Thread {in

Navicat连接OA赛车源码搭建数据库

OA赛车源码搭建场景介绍:企 娥:217 1793 408 随着业务量的逐渐增加,公司的数据库压力也会逐渐增大,使用自己购买的esc创建的mysql的话,还得考虑相应的dba维护,也比较繁琐,说不定还做的并不完美,这时,RDS就派上用场了,事实上,一般稍大的公司都不会在自己的线上ecs上搭建mysql,而是使用RDS云数据库,毕竟这是由阿里云最顶尖的dba团队进行维护的,而且还有自动备份功能,既省去了线上ecs的io消耗,又省去了很多繁琐的维护操作,当然,具体情况还是看公司.小型初创公司也并没有

源码搭建LAMP环境

源码搭建LAMP环境 一,LAMP环境概述: LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器.是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势

2016年旅游网站源码排行榜(最新)

在为大家做旅游网站源码排行之前,先给大家介绍一下什么是旅游网站源码,旅游网站源码,也称为旅游源代码.是指为编译的文本代码或一个网站的全部源代码文件,是一系列人类可读指令.大家都把它理解为源文代码,当前看到的这个网页来说,其实它就是由一大堆的源码组成,通过浏览器如Google.百度等浏览器或服务器翻译成我们现在所看见的样子!这样相对通俗的解释大家应该都懂吧!下面由是由笔者精心研究.收集.归纳的旅游网站源码,为大家做一个优先级排序,希望对大家在选择旅游网站源码的时候有所帮助. Top1 思途旅游网站

网狐棋牌源码搭建2017年最新网狐荣耀棋牌源码搭建下载

2017年最新网狐荣耀棋牌源码:含大厅全套源码+客户端+服务端+网站+后台+完整数据库 (更多详情网狐棋牌源码搭建 www.yasewl.com QQ:2189563389)

神兽大厅源码搭建前端入行两年--教会了我这些道理

1.前言光阴似箭,日月如梭.不得不感慨时间过得很快,2017差不多结束了,一下子我从事前端开发的时间已经两年了.神兽大厅源码搭建(h5.hxforum.com)扣扣2952777280这两年可以说是一波三折,回想这两年的经历,让我忍不住了写下了这篇文章,记录自己在这两年经历的种种种种.这篇文章,打算当做自己的一个经历记录,而对于看这篇文章的你,希望你们能从我的经历里面吸取教训,希望即将步入前端和已经从事前端的你,不要想我这样一波三折,在前端的路走得更好. 2.大学时光 考完了第二次高考,紧跟着就