文档章节

基于playframework v1构建一个新的Java web应用框架

开源老码农
 开源老码农
发布于 2012/12/07 07:55
字数 629
阅读 1K
收藏 4

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

正在考虑基于playframework v1构建一个新的Java web应用框架

动机: 我非常喜欢 playframework v1 但对v2不太感冒

v1中哪些特性应该保留:

  • 字节码增强。 这个超酷的特性允许框架和插件作者在应用中插入需要的逻辑,比如AOP,而AOP也仅仅是其中之一而已。
  • 全栈框架。跟play一样,这个新框架应该能自己运行,而不是插入一个Servlet容器。当然也应该允许用户应用被包进Servlet。
  • 支持插件,虽然API应有所变化。
  • 为应用程序提供方便的工具库, 比如 IO, Codec, Images 等.
  • 内置简单的安全框架
  • 易用的DB 层,允许插入不同的实现,包括 JPA, EBean, Morphia 等.
  • 内置数据有效性检查
  • 方便易用的异步API。
  • Before, After, Final, Catch 等过滤器
  • 根据 request.format 自动匹配模板文件
  • 模板中支持JavaExtension
  • 最最重要的是 简洁易用!

哪些应该改变或者提高的:

  • 路由机制。优化路由性能,让框架在大型应用(100条路由以上)也能快速定位响应方法。优化的机制可能包括使用代码生成器生成为每条路由动态生成帮助类。
  • 响应方法启动机制. 提高性能,减少对 reflection, static methods 和 Exception的使用。但API应该保持play1的简洁易用。
  • 插件框架API。
  • 用Java和脚本替代play1发行包中的python部分
  • CRUD
  • 用Rythm替代Groovy作为缺省模板引擎
  • 用Ebean替代JPA作为缺省数据访问层
  • 增强对JSON的支持。
  • 用markdown替代textile作为文档语言

Proposed Controller API:

public class Orders extends Controller {  
  
  
  // \-\-\- Parameters used in action handling methods  
  @Bind(method = Bind.ByID)  
  protected Order order; // will bind to http request params with Order.findById(params.get("orderId"))  
    
  @Bind(method = Bind.ById)  
  protected User user;  
  // \-\- eof Parameters  
    
  // this use new return style API  
  @Required("orderId")  
  public Result show() {  
    return new Render(order);  
  }  
  
  
  // this use old style API  
  @Required("orderId")  
  public void saveUpdate() {  
    notFoundIfNull(user);  
    order.save();  
    render(order, user);  
  }  
    
  // this action method will be executed in a separate thread  
  [@Async](http://my.oschina.net/553709938)  
  public Result report() {  
    order.save();  
    List<Order> orders = ...  
    return new RenderPDF(orders);  
  }  
    
}  

Sample route file:

GET /orders/{orderId} Orders.show  
POST /orders/{orderId} Orders.saveUpdate  
GET /orderReport Orders.report

© 著作权归作者所有

开源老码农

开源老码农

粉丝 360
博文 61
码字总数 71128
作品 4
其它
架构师
私信 提问
加载中

评论(5)

开源老码农
开源老码农 博主
这篇博客写作与3年半之前。作为后续,我已经开发出了一个新的框架:https://github.com/actframework/actframework。现已在公司商业项目中使用(重写以前用Jersey写的一个RESTFul的应用),效果非常好。框架功能已经基本完善,目前正在测试完善之中,文档工作也有待完善。希望能在今年年底之前正式发布
开源老码农
开源老码农 博主

引用来自“风花狂月”的评论

我要反馈rythm的一个标签错误。。。@extends()这个标签~使用了以后,html根本生成不了
在你的父模板里面有没有@render()或者@doLayout()? 参见:http://fiddle.rythmengine.org/#/editor/886606b3a7034088b991855bef8f89da
风花狂月
风花狂月
我要反馈rythm的一个标签错误。。。@extends()这个标签~使用了以后,html根本生成不了
JiangCretu
JiangCretu
great idea !
开源老码农
开源老码农 博主
这篇博客同时也有英文版本发在blogger网站上:http://software-lgl.blogspot.com.au/2012/12/thinking-about-creating-new-java-web.html
关于Play(Play 2.0 介绍)

Play 2.0 介绍 2007开始,我们一直致力于让Java开发web应用更容易。Play始于一个内部项目Zenexity,它深刻影响了我们开发web项目的方式:关注开发者生产力,遵循web架构的特点,并打破常规,...

大东哥
2012/03/19
2K
0
Oracle推出轻量级Java微服务框架Helidon

近日,Oracle 推出 了一个新的开源框架 Helidon ,该项目是一个用于创建基于微服务的应用程序的Java库集合。和 Payara Micro 、 Thorntail (之前的 WildFly Swarm )、 OpenLiberty 、TomEE...

小刀爱编程
2018/10/15
1.4K
2
深入浅出,了解 Spring 框架和 Spring Boot 的历史

Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一。它目前由大量提供一系列服务的模块组成。包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框架,...

周其
2018/04/05
4.9W
6
NodeJS对于Java开发者而言是什么?

我们都知道Node.js现在得到了所有的关注。每个人都对学习Node.js感兴趣,并希望可以工作于Node.js。在开始工作之前了解技术背后的概念总是不会错的。但对初学者来说,可能会因为不同的人使用...

城固如春
2017/10/21
0
0
JVM 上各种 Web 框架的抽象层 - Asity

Asity Asity 是 Java 虚拟机上各种 Web 框架的抽象层,可以在 JVM 上构建 Web 框架不可知的应用程序。 Asity 是 Web 框架的一个轻量级抽象层,它被设计用来构建应用程序和框架,这些应用程序...

匿名
2018/05/28
315
0

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes Ingress简单入门

本文转载自Rancher Labs 不知道你是否注意到一个奇怪的现象,尽管Kubernetes Ingress API仍然处于beta状态,但是已经有许多公司使用它来暴露Kubernetes服务。从事相关项目的工程师表示,Kub...

osc_slfjdpj6
15分钟前
8
0
ACCDB MDB Explorer for mac(数据库查看器)

想要更加直观的查看大数据,小编推荐使用mac数据查看工具ACCDB MDB Explorer Mac版,该软件能够将导入的数据库导出为XML,XLS,CSV和TXT格式的文件简便高效请添加链接描述,功能强大,需要的...

osc_63i522q0
16分钟前
8
0
二 javanio中的Channel transfer 内容

java nio中channel操作 分散 将channel中读取的数据分散写入多个buffer中 聚集 将多个buffer写入数据到同一个channel 应用 将消息头和消息体放入到不同buffer,便于分类处理应用 将消息头和消...

writeademo
16分钟前
26
0
如何更好的盘活和用好数据资产,企业如何构建数据竞争力的关键在这里!

在今年4月公布的《中共中央国务院关于构建更加完善的要素市场化配置体系机制的意见》中,“数据”首次作为一种新型生产要素写入中央文件中,与土地、劳动力、资本、技术等传统要素并列成为要...

osc_5asswvor
17分钟前
9
0
如何更好的盘活和用好数据资产,企业如何构建数据竞争力的关键在这里!

在今年4月公布的《中共中央国务院关于构建更加完善的要素市场化配置体系机制的意见》中,“数据”首次作为一种新型生产要素写入中央文件中,与土地、劳动力、资本、技术等传统要素并列成为要...

osc_e7clsgkf
18分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部