https://git.oschina.net/tinyframework/tiny
上手之前,默认已经熟悉Maven和Git,对于Maven和Gig相关问题,女生请问谷哥,男生请问度娘,他二位的细致耐心一定会让你满意的。
install之前需要进行环境准备,确认你的机器可以联得上外网,或者有好用的Maven代理。
请确认在编译环境中存在jdk1.5和1.6以上版本。
在你的Maven settings.xml中增加如下配置:
在<profiles>中添加下面的内容,注意:文件路径要改成与你的实际情况一致。
1 2 3 4 5 6 7 |
<profile> <id>JAVA_CONFIG</id> <properties> <JAVA_1_5_JAVAC>C:\Program Files\Java\jdk1.5.0_22\bin\javac</JAVA_1_5_JAVAC> <JAVA_1_6_JAVAC>C:\Program Files\Java\jdk1.6.0_45\bin\javac</JAVA_1_6_JAVAC> </properties> </profile> |
在<activeProfiles>段增加下面的内容:
1 |
<activeProfile>JAVA_CONFIG</activeProfile> |
然后,请在根pom所在目录执行如下命令:
1 |
<strong>maven install -DskipTests</strong> |
正常情况下,maven要下载一些东西,然后开始安装,安装成功就表示环境构建完毕。 更多内容请看本人博客。
Tiny框架10分钟入门,用于在10分钟之内使读者对Tiny框架的组成有个概要了解。
- 应用配置框架
用于提供系统配置加载与分发,同时提供默认配置及应用级配置两套配置方案,并以应用级配置方案为主,也就是说应用级的配置参数可以覆盖默认配置。
这样做有个好处,就是如果不配置应用级配置,那么默认配置也可以上你玩得很好;如果提供了应用级配置,那么可以对系统、框架、模块的原有行为进行个性化调整。在个性化及便捷化方面提供了一个兼顾。如果是低级用户,那么你就傻瓜式使用,啥配置也别改,有可能不是最优的,但一定也是相当不错的;如果是高级客户,那么你可以对各种参数进行深入配置。
- 应用启动
不管是普通控制台应用还是Web应用,都有一个启动过程。应用启动用于加载配置,分发配置,启动文件扫描,启动插件框架,等等处理。这个一般使用默认实现即可,当然,如果要深入调整启动方式,也可以自行实现。
- 文件扫描
Tiny框架采用了扔进去不用管的的组合模式,实际上是因为有文件扫描器进行扫描、处理,才得以实现的。可以说文件扫描是模块化的基石。
- 插件框架
插件框架主要解决启动及停止,还有要解决启动及停止时序。第一版的插件框架是支持热插拔的,但是由于要考虑的问题及多,投入产出比太不经济,再一个由于Tiny框架是SOA架构模式的,因此可以通过集群当中不同的机器进行分别维护来解决热插拔的问题,因此现在改成非热插拔的方式了。
- 通用事件处理框架
通用事件处理插件用于对外提供统一的基于服务的访问方式,而不用关心服务的真正生产者在哪里,所以也就无所谓本地服务和远程服务。
- 服务加载框架
服务加载框架用于把在本地运行环境中的服务加载起来并在通用事件处理框架中进行注册。
- 缓冲框架
通过查找是否存在缓冲的实现方案,如果有,且加载并启动之。
- UI引擎
UI引擎用于查找当前运行环境中存在的UI组件,并加载之,并提供JS合并及CSS合并等相关处理。同时提供了强大的基于布局和页面的展现支持。同时,高度的组件化,使得复用别人的组件和自己开发组件一样方便。同时还提供了JS,CSS加载时序的处理,使得开发人员不必再关心这些引入顺序问题。
- JSP运行引擎
JSP运行引擎是由Jasper引擎改进而来,主要的改进目的是解决模块化的问题,也就是说把JSP放入Jar包的支持。
- 字典框架
字典框架用于通过各种加载方式加载系统中用到的字典项并对外提供字典服务。
- DBF文件读取
目前已经支持除了M,B,G类型之外的所有字段类型,由于暂时没有需求,因此写入DBF文件后续再添加。
- INI文件读写
支持INI文件的读写,同一段中支持属性名重复
- 上下文支持
提供了强大的上下文支持,支持上下文嵌套。正有了上下文的支持,才使得变量的复制仅在跨节点时才会发生。节省了系统开销,内存占用,简化了框架实现难度。
- 文档生成框架
用于生成各种类型文本内容,比如: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语句都可以支持。对上层应用影响最少的数据库集群及分库分表方案。
- 分布式计算框架
提供了基于职介所、工头、工人、工作模式的多机协作分布式计算功能。支持任务分解、合并,支持工作序列化,永不丢失等等诸多特性。