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。^-^
分享到:
相关推荐
该项目为敏捷架构设计的ServiceFramework,是一个专注于移动应用后端服务的Java MVC框架。该框架采用Java语言编写,同时包含Scala和Shell脚本,共计397个文件,其中Java文件占主导地位,达319个。ServiceFramework...
在提供的压缩包文件"ServiceFramework-master"中,很可能是包含了一个名为"ServiceFramework"的服务框架的源代码仓库。这个框架可能提供了构建基于Java MVC的应用服务的基础设施,帮助开发者快速搭建和扩展业务服务...
ServiceFramework WikiServcieFramework定位在移动互联网领域,发展开发的高效性,其开发效率可以比肩。编译现在编译步骤: git clone git@github.com:allwefantasy/ServiceFramework.gitmvn install -Pscala-2.11...
在编程领域,特别是Java开发中,掌握相关的英语词汇至关重要,因为大部分的技术文档、API参考、框架和库的官方文档都是英文的。以下是一些与"JAVA英语语言词汇"相关的知识点,旨在帮助你理解和运用这些术语。 1. **...
4. **框架应用**:Spring Framework是最常见的Java EE开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)架构等特性。MyBatis则是一个优秀的持久层框架,简化了数据库操作。了解并熟练使用...
掌握JAVA的核心API,如集合框架(Collections Framework)、流和文件处理(IO/NIO)、异常处理、多线程等,对于JAVA工程师来说是必不可少的。此外,熟悉反射、注解、泛型等高级特性,能够在开发过程中提供更强大的...
Freeman是基于 Spring Boot2 + Spring data Jpa + Shiro + Vue2 + JWT 的前后端分离的敏捷开发框架;以Spring Framework为核心容器,Spring data Jpa(Hibernate实现)为数据访问层, Apache Shiro为权限框架,Redis对...
在实习过程中,我深入学习了两个主要的软件开发技术:Java和.Net,特别是在开发Online Shop System时,我不仅掌握了.NET框架下的MVC设计模式,还对电子商务网站的基本架构和功能有了深入理解。在Java Training阶段,...
6. **JSF(JavaServer Faces)**:一种用于构建用户界面的MVC(Model-View-Controller)框架,简化了Web应用的开发。 7. **JTA(Java Transaction API)**:处理事务管理,确保多操作的原子性、一致性、隔离性和...
Pivotal的Spring框架是Java开发中的重要工具,特别在微服务领域,Spring Boot简化了应用开发,而Spring Cloud提供了服务发现、配置中心、负载均衡等微服务治理功能,帮助开发者构建和管理分布式系统。 PaaS的生产...
CXF,全称CXF CXF (Common eXtensible Framework),是一个开源的Java框架,主要用于构建和开发Web服务。它整合了多种Web服务标准,如SOAP、RESTful、WS-*等,为开发者提供了一站式的Web服务实现方案。CXF这个名字...
- **2.3.4 减少通信成本**:采用敏捷开发方法,减少不必要的会议和文档。 - **2.4 测试** - **2.4.1 先期建立测试工程**:制定详细的测试计划和策略。 - **2.4.2 使用测试框架以实现自动化测试**:利用单元测试和...
Oracle Application Development Framework(ADF)是由Oracle公司研发的一款强大的企业级Java应用程序开发框架。ADF旨在简化复杂的企业应用开发过程,提供一套全面的工具和技术,帮助开发者快速构建高性能、可扩展且...
总结来说,SpringBoot YML文件是构建高效三层架构的关键,它允许开发者以声明式的方式配置应用,使得开发过程更加敏捷和高效。通过合理利用YML,我们可以实现灵活的服务器设置、数据源配置、ORM框架的整合以及安全...
Spring框架以其优秀的依赖注入(DI)和面向切面编程(AOP)特性,成为了Java企业级应用开发的首选。iBATIS作为一个轻量级的持久层框架,以其灵活的SQL映射机制赢得了开发者们的喜爱。将Spring与iBATIS相结合,能够...
Apache CXF是一个开源的Java框架,主要用于构建和开发SOAP(Simple Object Access Protocol)和RESTful Web服务,而Play Framework则是一个现代、敏捷的Web应用框架,以Java和Scala为主要编程语言。当需要在一个基于...
在Java开发中,实现功能标记服务可以使用各种框架和库。例如,我们可以使用如Togglz或Unleash这样的专门库,它们提供了强大的功能管理和API,让开发者能够轻松地在运行时切换功能状态。这些库通常与数据库或配置服务...
JADE(Java Agent Development Framework)是用Java语言开发的符合FIPA规范的软件框架,是FIPA多Agent平台参考模型的一个开发环境实现。JADE极大地简化了多智能体系统的开发过程,主要组成部分包括Agent的运行时环境...
4. HSF(High Speed Service Framework)介绍:HSF是阿里巴巴开源的高性能服务框架,主要用于构建微服务架构。它基于Java,提供了服务的注册、发现、调用等功能,使得服务之间可以轻松通信,提高了系统的可扩展性和...