Tiny框架之内容组成

Tiny框架10分钟入门,用于在10分钟之内使读者对Tiny框架的组成有个概要了解。

  • 应用配置框架
    用于提供系统配置加载与分发,同时提供默认配置及应用级配置两套配置方案,并以应用级配置方案为主,也就是说应用级的配置参数可以覆盖默认配置。
    这样做有个好处,就是如果不配置应用级配置,那么默认配置也可以上你玩得很好;如果提供了应用级配置,那么可以对系统、框架、模块的原有行为进行个性化调整。在个性化及便捷化方面提供了一个兼顾。如果是低级用户,那么你就傻瓜式使用,啥配置也别改,有可能不是最优的,但一定也是相当不错的;如果是高级客户,那么你可以对各种参数进行深入配置。
  • 应用启动
    不管是普通控制台应用还是Web应用,都有一个启动过程。应用启动用于加载配置,分发配置,启动文件扫描,启动插件框架,等等处理。这个一般使用默认实现即可,当然,如果要深入调整启动方式,也可以自行实现。
  • 文件扫描
    Tiny框架采用了扔进去不用管的的组合模式,实际上是因为有文件扫描器进行扫描、处理,才得以实现的。可以说文件扫描是模块化的基石。
  • 插件框架
    插件框架主要解决启动及停止,还有要解决启动及停止时序。第一版的插件框架是支持热插拔的,但是由于要考虑的问题及多,投入产出比太不经济,再一个由于Tiny框架是SOA架构模式的,因此可以通过集群当中不同的机器进行分别维护来解决热插拔的问题,因此现在改成非热插拔的方式了。
  • 通用事件处理框架
    通用事件处理插件用于对外提供统一的基于服务的访问方式,而不用关心服务的真正生产者在哪里,所以也就无所谓本地服务和远程服务。
  • 服务加载框架
    服务加载框架用于把在本地运行环境中的服务加载起来并在通用事件处理框架中进行注册。
  • 缓冲框架
    通过查找是否存在缓冲的实现方案,如果有,且加载并启动之。
  • UI引擎
    UI引擎用于查找当前运行环境中存在的UI组件,并加载之,并提供JS合并及CSS合并等相关处理。同时提供了强大的基于布局和页面的展现支持。同时,高度的组件化,使得复用别人的组件和自己开发组件一样方便。同时还提供了JS,CSS加载时序的处理,使得开发人员不必再关心这些引入顺序问题。
  • JSP运行引擎
    JSP运行引擎是由Jasper引擎改进而来,主要的改进目的是解决模块化的问题,也就是说把JSP放入Jar包的支持。
  • 字典框架
    字典框架用于通过各种加载方式加载系统中用到的字典项并对外提供字典服务。
  • 上下文支持
    提供了强大的上下文支持,支持上下文嵌套。正有了上下文的支持,才使得变量的复制仅在跨节点时才会发生。节省了系统开销,内存占用,简化了框架实现难度。
  • 文档生成框架
    用于生成各种类型文本内容,比如:xml,比如:源代码,比如:word,pdf,excel等等。当然,它只是个框架,里面已经内嵌了一些组件,但是真正要用得好,还是需要进行组件扩展的。
  • VFS虚拟文件系统
    用于统一对各种异构文件来源的文件进行统一化操作的封装,支持本地文件,URL文件,FTP文件,ZIP,JAR文件等的统一化访问,当然也可以通过扩展支持更多的文件来源。
  • 基础组件
    主要包含线程组,对象池,优先队列等实现。
  • 元数据加载框架
    支持定义各种元数据并加载之,元数据主要包含类型定义(屏蔽不同数据库及编程语言之差异),业务类型定义(使得业务类型有含义),标准字段定义(业务中只能使用标准字段)等等,通过这些元数据的定义,可以方便的进行跨数据库,跨编程语言运行(只适合流程编排式开发)。
  • 数据库访问框架
    Tiny框架本身不拒绝任何ORM方案,但是内嵌也增加了一个小的跨数据库数据访问方案,不用写POJO,不用写DAO,直接就可以完成各种数据库处理。并且可以与Hibernate,iBatis等框架进行集成。
  • 应用安装框架
    应用安装框架用于解决软件升级过程中的数据库表结构调整,初始化数据插入等等处理,不论经历了多少个版本变迁,都可以使得应用无工作量自动升级完毕。有过大型工程实践经验的人,会知道这个功能可以带来多少便捷及节点多少开发及维护工作量。
  • Xml及Html解析
    内嵌高性能Xml及Html解析,尤其是在遍历方面性能比一般解析器高太多,非常适合一次解析之后需要进行大量遍历的场景。同时,对于中文标签及属性有良好支持,有非常强的容错性,即使Html不符合规范,大多数据情况也可以正确解析。最差的情况也会给出一个不正确的Dom,而不是抛错退出。
  • 网络爬虫支持
    资源获取集成了HttpClient,Html解析采用内嵌html解析方案,上手简单,可以避免多次抓取,死循环等等,在普通 应用场景应用已经足够了。
  • 流程引擎
    支持组件任意自行扩展,支持面向对象特性,如:流程继承、节点覆盖重写等,同时提供灵活的异常捕获机制,同时还支持流程重入,也就是说流程的执行不一定非从流程的第一个节点起执行。正因为流程可重入的特性,基于其提供了页面流的支持,工作流引擎理论上也是可以的,不过还没有开始。
  • 校验框架
    提供前后台校验规则一次性编写,前后台同时生效。
  • Web层框加
    这一次提供的内容太多,不一定说全。支持web.xml不用修改方案,这样大大有利于模块化及后期的维护。提供了页面流支持。提供了rewrite支持。提供了文件上传支持。提供了安全过滤。提供了No session支持。提供了Bigpipe支持。提供了压缩输出支持。提供了对象组装支持。
  • DBRouter
    基于JDBC3和JBC4规范的数据库集群及分库分表方案,提供数据库集群、分库、分表等方面的强力支持,支持各种数据库。在限定之外的SQL语句都可以支持。对上层应用影响最少的数据库集群及分库分表方案。
  • 分布式计算框架
    提供了基于职介所、工头、工人、工作模式的多机协作分布式计算功能。支持任务分解、合并,支持工作序列化,永不丢失等等诸多特性。

源码快照: 
http://git.oschina.net/tinyframework/tiny0.0.13-SNAPSHOT.git 
有关于Tiny框架的一切问题,请加入QQ群:228977971 提问

时间: 2025-01-02 05:43:03

Tiny框架之内容组成的相关文章

Tiny框架2.0版火热推出

方法论 方法论决定了可以达到的高度 方法论,就是人们认识世界.改造世界的根本方法. 它是人们用什么样的方式.方法来观察事物和处理问题.概括地说,世界观主要解决世界"是什么"的问题,方法论主要解决"怎么办"的问题. 方法论是一种以解决问题为目标的体系或系统,通常涉及对问题阶段.任务.工具.方法技巧的论述.方法论会对一系列具体的方法进行分析研究.系统总结并最终提出较为一般性的原则. 方法论也是一个哲学概念.人们关于"世界是什么.怎么样"的根本观点是世

从应用示例来认识Tiny框架

呵呵,Tiny框架神龙见首不见尾已经许多时间了,里面只看到一些几个孤零零的子框架.今天就通过Tiny开发示例的方式来重点展示一下利用Tiny框架是如何开发的.HelloWorld首先从这个神一样的示例写起.服务开发:方式1:注解方式 [AppleScript] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 @ServiceComponent() public class HelloWorldAnnotationService{     @Ser

【Web探索之旅】第二部分第三课:框架和内容管理系统

内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby,C#等. 这一课我们来学习基于这些语言衍生出来的框架(Framework),然后我们再来看看什么是内容管理系统(CMS). 框架(Framework) 什么是Framework(框架)呢?要给出一个准确的定义很难.因为它有不少不同的定义.可以自行参看这个百度百科: http://baike.baidu

要学习TINY框架要有什么前提条件?

必备条件: 首先会Java 掌握Maven 熟悉git 可选条件: 有oschina的注册帐号:可以与Tiny框架构建者沟通 有oschina的git注册帐号:便于创建Tiny框架的Fork,并提交给原作者 对悠悠然然加粉:享受果粉待遇,得到辅导及及时回复 加入Q群:可即时互动

TINY框架用到的第三方库有哪些?

Tiny框架采用的第三方库,分必须及可选. 必须的有Spring.Xstream.SLF4J.Apache Commons相关以前他们依赖的第三方Jar包. 可选的有一些EL表达式包,Cache包.Velocity,网络通信包等等

父框架调用子框架中内容的问题记录

有一个项目需要用框架来完成,在编码中发现父框架调用子框架中内容的实现有兼容性问题,特此记录下来! <iframe id="preview" name="preview" src="bill.php?page=preview" frameborder="0" width="100%"></iframe> 这个是我的框架,我准备操作框架中的DOM.所以我使用了, container= p

ThinkCMF框架任意内容包含漏洞分析复现(写入shell+文件包哈)

ThinkCMF框架任意内容包含漏洞分析复现 0x00 简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建.ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展.每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作.在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本. 0x

ThinkCMF_X1.6.0-X2.2.3框架任意内容包含漏洞的简单分析复现(附自动化验证脚本)

1.漏洞概述 攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的 2.影响版本 ThinkCMF X1.6.0 ThinkCMF X2.1.0 ThinkCMF X2.2.0 ThinkCMF X2.2.1(我用的是这个) ThinkCMF X2.2.2 ThinkCMF X2.2.3 3.安装 赋予权限 4.安装系统 安装成功进入主页 Poc /?a=display&templateFile=README.md /?a=fetch&templateFi

构建自己的PHP框架--抽象框架的内容

上一篇博客中,我们搭建了一个最简单的框架,从单一入口的public/index.php进入,解析出相应的Controller和Action,去执行,渲染出相应的页面或者输出相应的数据. 但是我们可以看到在public/index.php文件中,是一堆代码,如果之后,我要添加权限/事件等等的机制是不是也要也在这里,那不难想象,不就的将来,index.php就会变成一个巨大无比的php文件.我们当然不想看到这样的情景,所以我们需要将这些内容抽象出来,保持入口文件的简单明了. 那我们要将这些内容抽象到