Java应用简易开发框架SAF介绍(一)

概述

SAF是一套简易的开发Java应用系统的框架。SAF就是Simple Application Framework的缩写。

说到Java应用开发框架,早些年我们用得最多的是Spring+Struts+Hibernate(简写为SSH),近些年用得更多的是Spring+SpringMVC+MyBatis(简写为SSM)。这些都是经典的Java开发框架,为Java应用系统的开发提升了开发的效率。

笔者在最近若干年开发Java系统的过程中,也是经常琢磨着如何优化系统框架,如何简化开发工作,如何更高效地编程。笔者选择的道路是自己编写了一套框架代码,所以有了SAF。

目前SAF提供了类似Spring的IoC、AOP,提供了ORM功能和缓存功能,也有自己的MVC架构,除了轻度使用了Spring外,Struts/Hibernate/SpringMVC/MyBatis都没有用到。

应用SAF开发最大的特点,就是简单、高效,易学易用,此外也有很好的扩展性,能够普遍适应多种Java应用系统开发的需求。

 

开发准备工作

首先我们建立一个工程(假设Project代码总包名为”study”),有如下的代码结构:

还要引用一些jar库,包括Spring库等,还有就是SAF公共代码库jsaf.jar
暂时我们不讲各个包和类的作用,框架类代码是很少变动的,我们开发时主要涉及到entity包和service包。

先从一个简单的例子入手

例如我们有一个用户表:

CREATE TABLE tb_user {
  user_id varchar(20) ,
  user_name varchar(100) ,
  mobile_nbr(11)
}

 当需要处理一个新的实体类的时候,我们基本上只需要做三件事情:

1、增加实体类标记;2、新增实体模型类;3、新增实体服务类。

以用户表为例:

增加实体类标记:修改study.consts.E 类, 增加一行对用户实体类的标记:

public static final String USER = "user"

增加实体模型类:在study.entity包下新建 User类

@EntityAnno(classId=E.USER, table="tb_user")
public class User extends Entity {

    private String mobileNbr;

    public String getMobileNbr() {
        return mobileNbr;
    }

    public void setMobileNbr(String mobileNbr) {
        this.mobileNbr = mobileNbr;
    }

} 

 我们再看看增加、修改、删除、查询是怎样编写的:

public class UserService extends EntityService<User> {

    public ServiceResult addUser(ClientRequest request) {
       String name = request.get("name");
       User user = new User();
       user.setName(name);
       this.insert(user);
       return new ServiceResult();
    }

    public ServiceResult editUser(ClientRequest request) {
       String id = request.get("id");
       String name = request.get("name");
       User user = this.get(id);
       user.setName(name);
       this.update(user, "name");
       return new ServiceResult();
    }

    public ServiceResult deleteUser(ClientRequest request) {
       String id = request.get("id");
       this.delete(id);
       return new ServiceResult();
    }

    @Override
    protected QueryRequest listQuery(ClientRequest request, String queryType) {
       String name = request.get("name");
       QueryModel model = new QueryModel();
       if (!isNull(name)) {
           model.addWhereItem("user_name like ?", "%"+name+"%");
       }
       return new QueryRequest(model);
    }
}

至此,关于用户实体的增加、修改、删除、查询功能的后台功能,就完成了!

上述关于用户数据的处理,我们没用到任何配置文件,注解也只用到了一个。

是不是觉得很简单?

我们还可以来对比一下,如果是用主流的SSM框架,我们要做哪些事情——

  1. 需要建立实体类 User.java 
  2. 需要建立MyBatis映射器配置文件 UserMapper.xml 
  3. 需要建立MyBatis映射器接口 UserMapper.java  (也有很多人改名为UserDao)
  4. 需要建立服务接口  IUserService.java 
  5. 需要建立服务实现类 UserService.java 
  6. 需要建一个Spring MVC控制器 UserController.java
SSH实例
SSH框架实例
SSM实例
SSM框架实例

相同的功能,SSM要建6个文件(SSH也差一样),而JSAF只需要做第1和5两项,很明显JSAF比起SSM要简单多了。

 

好,现在我们初步了解了SAF框架开发的简易性。

SAF有哪些独特的技术特点,这种简易性是如何实现的?

后续将会逐一分解,敬请关注。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值