从应用示例来认识Tiny框架
2015-06-09 17:39
183 查看
呵呵,Tiny框架神龙见首不见尾已经许多时间了,里面只看到一些几个孤零零的子框架。今天就通过Tiny开发示例的方式来重点展示一下利用Tiny框架是如何开发的。
HelloWorld
首先从这个神一样的示例写起。
服务开发:
方式1:注解方式
[AppleScript]
纯文本查看 复制代码
?
解释:
@ServiceMethod(serviceId = "sayHelloA")声明服务ID,必须不能重复,保证唯一
@ServiceResult(name = "result")声明返回结果在服务调用完之后旋转在数据总线的名称
@ServiceViewMapping("/helloworld/helloresult.page")声明如果调用服务之后转向的展现页面,可省略
表单输入界面:helloworld.page
服务方式:
[AppleScript]
纯文本查看 复制代码
?
运行结果界面:
helloresult.page
$!result
方式2:Xml配置方式
[AppleScript]
纯文本查看 复制代码
?
上面写完类之后,还要再加一个配置文件:
[AppleScript]
纯文本查看 复制代码
?
这段Xml手工写还是有点麻烦的,不过没关系,咱有工具:
172244_xQD4_1245989.jpg (33.82 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
172345_2GDF_1245989.jpg (82.79 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
如果想在调用服务之后自动转向到一个页面,则要再配下面的xml
[AppleScript]
纯文本查看 复制代码
?
表单输入界面:helloworld.page
服务方式:
[AppleScript]
纯文本查看 复制代码
?
运行结果界面:
[AppleScript]
纯文本查看 复制代码
?
方式3:流程编排方式
要通过流程编排方式实现,先要写一个组件:
[AppleScript]
纯文本查看 复制代码
?
写完组件之后,还要编写组件定义文件来定义组件的定义文件,当然要做成组件,就一定要有通用性,这样就可以一次定义,到处使用,对于只用一次的,这么做就不方便了。
[AppleScript]
纯文本查看 复制代码
?
OK,现在流程组件就开发完毕了。
144453_9aLV_1245989.jpg (26.35 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
就可以像上面一样在可视的流程编辑器中进行可视化开发了。
表单输入页面:
[AppleScript]
纯文本查看 复制代码
?
运行结果页面:
[AppleScript]
纯文本查看 复制代码
?
上面的展现简单是简单了点,但是容易理解。
通过上面的HelloWorld,我们对Tiny框架的服务开发及界面开发及控制层的开发都有了一定的了解,下面我们就进入更加复杂一点的示例:
四则运算
由于前面一节已经有了一定了解,因此这一节就只贴代码,解释就省了。
通过注解方式开发服务
[AppleScript]
纯文本查看 复制代码
?
通过Xml配置方式开发服务
[AppleScript]
纯文本查看 复制代码
?
通过流程方式开发服务
下面先搞个抽象类:
[AppleScript]
纯文本查看 复制代码
?
接下来就简单了:
[AppleScript]
纯文本查看 复制代码
?
然后就可以通过编辑器,可视化编辑了。
150926_F5FX_1245989.jpg (5.87 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
由于这里主要说明服务端的开发,因此客户端的开发就省略了,其实也是非常简单的。
数据库示例
搞开发,怎么能不搞数据库呢??
下面展现一下数据的开发:
采用Hibernate来开发数据库应用
首先搞个Pojo
[AppleScript]
纯文本查看 复制代码
?
接下来配个hbm文件:
[AppleScript]
纯文本查看 复制代码
?
再接下来写个Dao:
[AppleScript]
纯文本查看 复制代码
?
接下来实现服务:
[AppleScript]
纯文本查看 复制代码
?
没错,你看起来这里的服务都是直接调用dao里的方法的,对于这个简单例子看起来有点重复,但是实际应用中是不可能直接把dao发布成服务的,因此你可以想像一下这里有好多步操作就好了。
至此基于Hibernate就可以开发完毕了。
采用TinyDB来实现
TinyDB采用了No Pojo,No Dao的解决方案:
[AppleScript]
纯文本查看 复制代码
?
OK,这样就算完成了。
够简单么??NO,还不够简单。
实际上TinyDB中对于常用的CRUD,根本就不用写代码,框架默认就全部支持了,所以只有复杂的业务逻辑的都需要像上面一样写一下,简单的CRUD,就不用写了。
通过流程方式开发
框架内嵌已经包含了常用的数据库处理组件:
152717_8WYb_1245989.jpg (26.89 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
哇,只要拖拖配配就可以了。
页面流
页面流是Tiny框架推荐的控制层解决方案,它强大,简单,可视性好。
153711_cVs6_1245989.jpg (22.29 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
呵呵,是不是实现简单,看起来清晰?
当然它的强大在这么简单的例子里是看不到的。
WEB工程
从上面的示例来看,它的界面确实是简单的。然后上面的三个工程最后打了3个Jar包,就算开发完毕了。
在我们的Web工程中,我们要添加这些示例,只要修改pom文件即可:
[AppleScript]
纯文本查看 复制代码
?
POM添加了,功能就添加了;POM删除了,功能就删除了,这就是Tiny框架中所说的模块化。
UI引擎
示例完成之后,我对做示例的同学说,你这个示例写得还是可以的,但是我展示的时候很不方便,我要记得每个地址,这对我要求也太高了,能不能给我搞个菜单出来??
此同学说好的,结果他创建了一个default.layout文件,加了如下的代码:
[AppleScript]
纯文本查看 复制代码
?
然后我就在访问所有页面的时候都有菜单可用了,这就是TinyUI框架中的装饰。
应用截图
首页:
163238_pRxM_1245989.jpg (9.93 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
点击helloworld进入helloworld示例首页
163352_cNzD_1245989.jpg (4.44 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
再点下面的服务方式后的helloworld链接
163509_dNmk_1245989.jpg (5.53 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
输入abc之后,点提交:
163559_Wypy_1245989.jpg (4.32 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
结果就出来了。
下面是数据访问页面:
163722_XWdH_1245989.jpg (12.68 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
添加界面:
163825_jOrC_1245989.jpg (6.83 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
四则运算界面:
163919_C5T0_1245989.jpg (8.39 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
呵呵,不要嫌界面丑,界面丑是因为我不想引入复杂的页面使得注意力转移到其它地方。
总结
上面用了三个例子:HelloWorld,四则运算,数据库访问来对Tiny框架的开发过程进行了展示。当然,Tiny框架提供的实际内容要远远多于你上面看到的内容,比如:
对页面的局部刷新有强有力的支持,便于进行Ajax处理
提供Bigpipe模式来提升用户体验
提供CSS合并、提供JS合并,提供内容压缩输出到浏览器端
上面开发的所有服务都可以提供xml,json方式结果的返回,也可以通过webservice进行访问
提供分层部署能力
提供集群部署支持,接入服务器可以水平进行扩展,应用服务器可以进行水平扩展。
更多请看Tiny框架内容组成请看:/article/2689220.html
更多内容请看本人首页:http://my.oschina.net/tinyframework
HelloWorld
首先从这个神一样的示例写起。
服务开发:
方式1:注解方式
[AppleScript]
纯文本查看 复制代码
?
@ServiceMethod(serviceId = "sayHelloA")声明服务ID,必须不能重复,保证唯一
@ServiceResult(name = "result")声明返回结果在服务调用完之后旋转在数据总线的名称
@ServiceViewMapping("/helloworld/helloresult.page")声明如果调用服务之后转向的展现页面,可省略
表单输入界面:helloworld.page
服务方式:
[AppleScript]
纯文本查看 复制代码
?
helloresult.page
$!result
方式2:Xml配置方式
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
172244_xQD4_1245989.jpg (33.82 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
172345_2GDF_1245989.jpg (82.79 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
如果想在调用服务之后自动转向到一个页面,则要再配下面的xml
[AppleScript]
纯文本查看 复制代码
?
服务方式:
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
要通过流程编排方式实现,先要写一个组件:
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
144453_9aLV_1245989.jpg (26.35 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
就可以像上面一样在可视的流程编辑器中进行可视化开发了。
表单输入页面:
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
通过上面的HelloWorld,我们对Tiny框架的服务开发及界面开发及控制层的开发都有了一定的了解,下面我们就进入更加复杂一点的示例:
四则运算
由于前面一节已经有了一定了解,因此这一节就只贴代码,解释就省了。
通过注解方式开发服务
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
下面先搞个抽象类:
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
150926_F5FX_1245989.jpg (5.87 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
由于这里主要说明服务端的开发,因此客户端的开发就省略了,其实也是非常简单的。
数据库示例
搞开发,怎么能不搞数据库呢??
下面展现一下数据的开发:
采用Hibernate来开发数据库应用
首先搞个Pojo
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
[AppleScript]
纯文本查看 复制代码
?
至此基于Hibernate就可以开发完毕了。
采用TinyDB来实现
TinyDB采用了No Pojo,No Dao的解决方案:
[AppleScript]
纯文本查看 复制代码
?
够简单么??NO,还不够简单。
实际上TinyDB中对于常用的CRUD,根本就不用写代码,框架默认就全部支持了,所以只有复杂的业务逻辑的都需要像上面一样写一下,简单的CRUD,就不用写了。
通过流程方式开发
框架内嵌已经包含了常用的数据库处理组件:
152717_8WYb_1245989.jpg (26.89 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
哇,只要拖拖配配就可以了。
页面流
页面流是Tiny框架推荐的控制层解决方案,它强大,简单,可视性好。
153711_cVs6_1245989.jpg (22.29 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
呵呵,是不是实现简单,看起来清晰?
当然它的强大在这么简单的例子里是看不到的。
WEB工程
从上面的示例来看,它的界面确实是简单的。然后上面的三个工程最后打了3个Jar包,就算开发完毕了。
在我们的Web工程中,我们要添加这些示例,只要修改pom文件即可:
[AppleScript]
纯文本查看 复制代码
?
UI引擎
示例完成之后,我对做示例的同学说,你这个示例写得还是可以的,但是我展示的时候很不方便,我要记得每个地址,这对我要求也太高了,能不能给我搞个菜单出来??
此同学说好的,结果他创建了一个default.layout文件,加了如下的代码:
[AppleScript]
纯文本查看 复制代码
?
应用截图
首页:
163238_pRxM_1245989.jpg (9.93 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
点击helloworld进入helloworld示例首页
163352_cNzD_1245989.jpg (4.44 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
再点下面的服务方式后的helloworld链接
163509_dNmk_1245989.jpg (5.53 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
输入abc之后,点提交:
163559_Wypy_1245989.jpg (4.32 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
结果就出来了。
下面是数据访问页面:
163722_XWdH_1245989.jpg (12.68 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
添加界面:
163825_jOrC_1245989.jpg (6.83 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
四则运算界面:
163919_C5T0_1245989.jpg (8.39 KB, 下载次数: 0)
下载附件
2015-5-28 17:17 上传
呵呵,不要嫌界面丑,界面丑是因为我不想引入复杂的页面使得注意力转移到其它地方。
总结
上面用了三个例子:HelloWorld,四则运算,数据库访问来对Tiny框架的开发过程进行了展示。当然,Tiny框架提供的实际内容要远远多于你上面看到的内容,比如:
对页面的局部刷新有强有力的支持,便于进行Ajax处理
提供Bigpipe模式来提升用户体验
提供CSS合并、提供JS合并,提供内容压缩输出到浏览器端
上面开发的所有服务都可以提供xml,json方式结果的返回,也可以通过webservice进行访问
提供分层部署能力
提供集群部署支持,接入服务器可以水平进行扩展,应用服务器可以进行水平扩展。
更多请看Tiny框架内容组成请看:/article/2689220.html
更多内容请看本人首页:http://my.oschina.net/tinyframework
相关文章推荐
- 新手如何入门
- 汇编语言基础2
- 【转载】Java 7之基础 - 强引用、弱引用、软引用、虚引用
- 汇编语言基础2
- leetcode--Partition List
- 数据库设计的完整性约束表现
- oracle 中存储过程无法编译。卡死, session kill 不掉。
- WebStorm下载地址及常用快捷键
- 认识自己——我需要的2
- phpExcel中文帮助手册之常用功能指南
- linux 设备文件属性
- Android数据访问存储之内存读写
- 不是语言之争--Go vs Erlang
- PHP array_combine()
- PL/SQL Developer自动补全SQL技巧
- DFS分布式文件系统
- WindowsAPI小程序
- 箭头操作符(间接运算符)arrow operator
- xtrabackup备份数据库
- TinyRMI---RMI的封装、扩展及踩到的坑的解决