Scooter 越跑越快 - Scooter 1.2 更高效,更易用!
以下是一些新特性的介绍,更多详情可点击这里.
性能优化更强大
1.2版本简化了许多程序,并且增添了线程缓存和二级缓存.
线程缓存默认情况下就已开启。 线程缓存使得同一线程中多次数据库请求只须要联结一次数据库。
启动线程缓存很容易,只要在environment.properties文件中设定如下参数即可:
useRequestCache=true
二级缓存默认情况下是关闭的。 启动二级缓存后,不同请求可以共享缓存数据。
启动二级缓存也很容易,只要在environment.properties文件中设定如下参数即可:
useSecondLevelCache=true default.cache.provider.name=blog_development plugin.cache.provider.blog_development=\ plugin_class=plugin.ehcache.EhCacheCacheProvider,\ configFile=ehcache.xml
Scooter提供了包括EhCache在的多种二级缓存plugin。你可以设定缓存清除。 缓存还可以设置在方法上。点击这里获取更多详系介绍。
下表是1.2和1.1版本的性能对比。所有数据都是每执行10000次SQL select的毫秒数。
AR AR (trans) JDBC ------------------------------------------------ 1.1 11730 7237 2179 1.2 no cache 7543 2586 2311 1.2 thread cache 196 142 1.2 2nd level cache 92 90
AR代表使用ActiveRecord测试。AR (trans)代表ActiveRecord测试中加入事务。JDBC代表使用JDBC测试。
显然,1。2版本即便没使用缓存都要比1。1版本快的多。加入事务来组合同一进程中多次数据库请求对提高性能有帮助。然而,从根本上提高性能,还是要靠缓存。二级缓存大大地提高了Scooter的性能。
更容易对任何数据库表生成脚手架
在1。1版本下,当你要生成数据库表生成脚手架程序时,你必须使用和数据库表同样的名字或其单数型式来命名model类。在1。2版本下,你可以使用任何名字来命名model类。 你只须要使用-Dtable=YourTableName系统属性即可。
比如说,如果你的数据库表名是messages, 你可以生成post model的脚手架程序:
>java -Dtable=messages -jar tools/generate.jar blog scaffold post
更好的程序强化支持
在1。1版本下,Scooter内嵌的编译器经常会和IDE(例如Eclipse)的编译器相抵触。有时候会使得Scooter的程序强化失效。现在在1。2版本下,你可以使用Ant task app_enhancer 在开发环境DEVELOPMENT里来做到程序强化。
>ant -DappPath=webapps/blog app_enhancer
更容易分页
1。2版本加入了几个overloaded jdbcPaginator方法。利用新的jdbcPaginator方法,你可以轻松地控制分页。 例如你可以自己设定limit参数:
public String index() { Paginator page = jdbcPaginator(Post.class, "limit=50"); setViewData("post_page", page); return renderView("paged_list"); }
当然,如果这还不够的话,你也可以直接用Paginator 类:
public String index() { int npage = Util.getSafeIntValue(p("npage")); if (npage == 0) { npage = 1; } Paginator page = Post.limit(50).page(npage).getPaginator(); setViewData("post_page", page); return renderView("paged_list"); }