ServiceFramework 根据其名字就可以知道,是一个面向服务的一站式MVC框架。脱胎于内部的一个搜索项目,通常我们定位在移动应用后端.
ServiceFramework设计的理念
能否让用户能够用最简单的方式解决80%的问题才是框架真正应该追求的。Java 很多框架就是为了追求框架本身的完美和扩展性而忽略了上面的原则。
项目地址: https://github.com/allwefantasy/ServiceFramework
ServiceFramework 是为了快速开发而生的。大部分互联网应用是以数据为中心的,尤其是关系型数据库。所以如果能简化数据操作,便能有效减少代码。
所以我们参照Rails ActiveRecord 对模型类做了完善的充血实现。这其中绝对没有因为java是静态语言导致的一些限制而做任何妥协。后面示例我们可以看到这一点。
核心优势是,Model方面真正实现了Java的充血模型,Query使用了ActiveRecord的风格。相信我,没有任何妥协。举个例子:
从 Form 到 Model 再到 DB
Order order = Order.create(params());
if(order.save()){
render(ok())
}
else{
render(HTTP_403,"参数错误");
}
下面是一个很优秀的被Play所推荐的ORM框架Ebean的Query Interface.调用方式如下
Ebean.find(Order.class)
.fetch("details")
.setMaxRows(100)
.where().eq("status",Order.Status.NEW)
.order().desc("id")
.findList();
说说几点
- 模型类还是被人操作来操作去,比如需要Ebean操作Order 模型。
- 链式关系比较诡异,有层级关系。比如 where()下有eq()等。
再看看ServiceFramework的query interface
List<Order> orders = Order.where("status=:status",map("status",Order.Status.NEW))
.joins("details")
.limit(100)
.order("id desc")
.fetch();
其实我通常会这样子:
@Entity
class Order extends Model
{
public static JPQL status_new(){
return where("status=:status",map("status",Order.Status.NEW));
}
}
List<Order> orders = Order.status_new()
.joins("details")
.limit(100)
.order("id desc")
.fetch();
非常简单直观,天然以sql关键字区分,没有任何学习成本,都是按程序员最直观的方式进行。
其实不仅仅是Model层,controller层的设计也极尽简化。我们也对过滤器(拦截器)做了重新实现,这不同于一般的如Struts2的实现。同时我们还提出了一个理念,在Controller层应该提供一个函数库,就像PHP那样。当然,我们现在只是提供一些比较实用的函数。但是以后会慢慢添加。
此外还有一些小特点,譬如
- 一站式,不需要你整合各个框架
- 随时clone随时使用,十分钟wiki之后便能着手开发。
- 你不用考虑项目结构
- 你不用考虑如何分层
- 你不需要考虑配置文件。我们提供一个统一的配置对象供你使用
- 我们尽量使用一些最佳实践来组织项目。比如使用IOC做基础。这意味着,你大部分类都会自动被容器所管理。
最后,欢迎Rails开发者回归Java。^-^
分享到:
相关推荐
java开发框架研究 系统讲述java开发原理 和web service
ServiceFramework 适合你吗? ServcieFramework 定位在 移动互联网后端 领域。所以ServcieFramework非常强调开发的高效性,其开发效率可以比肩Rails(不相信?可以体验一下哦)。 拥有Java界最简单,非常高效,且真正...
通过magic-api提供的UI界面完成编写接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发
API敏捷开发框架,用于API接口功能的快速开发。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.以springboot starter 形式集成使用
本文档分析了Android 服务框架中的Java 服务框架部分
Jersey Java规范下REST风格Web Service开发框架
对Android Service Framework进行简单的剖析
所以service-framework非常强调开发的高效性,其开发效率可以比肩Rails(不相信?可以体验一下哦)。 拥有Java界最简单,非常高效,且真正的富Model层 Controller层含有便利的函数库,简洁高效的验证器,过滤器 简单但...
《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》:Ruby on Rails是一个全套的MVC web框架,它能帮你开发高质量又美观的web应用,而且开发速度快得出乎你想象。你只须集中精力于应用程序本身,Rails就会帮你...
Android sensor service framework
"Rocket-API" 基于spring boot 的API敏捷开发框架,用于API接口功能的快速开发。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.以springboot starter 形式集成使用。服务端50%以上的功能只需要...
基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。 magic-page-...
NULL 博文链接:https://sziitjiang.iteye.com/blog/1741412
ServiceFramework WikiServcieFramework定位在移动互联网领域,发展开发的高效性,其开发效率可以比肩。编译现在编译步骤: git clone git@github.com:allwefantasy/ServiceFramework.gitmvn install -Pscala-2.11...
可利用javaService将java程序安装为系统服务
使用IDEA开发工具、SpringBoot工程、SSM框架、实现Service层业务层开发案例讲解。
摘要: XEngine_ServiceFramework 代码地址:XEngine_ServiceApp: xengine 高性能后台服务器开发框架 (gitee.com) 介绍 c c++网络后台服务器开发框架 c c++ network backend server development framew 阅读全文 ...
JAVA Web service 开发实例