1. 程式人生 > >Java應用簡易開發框架SAF介紹(一)

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;
    }

} 

增加服務類:在study.service包下建立使用者服務類 UserService.java

public class UserService extends EntityService<User> {

}

 我們再看看增加、修改、刪除、查詢是怎樣編寫的:

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框架,我們要做哪些事情——

  • 需要建立實體類User.java
  • 需要建立服務類UserService.java
  • 需要建立MyBatis對映器配置檔案UserMapper.xml
  • 需要建立MyBatis對映器介面 UserMapper.java
  • 需要建一個Spring MVC控制器UserController.java

其中後面三項是SSM相比SAF框架要多做的事情。

 

好,現在我們初步瞭解了SAF框架開發的簡易性。

SAF有哪些獨特的技術特點,這種簡易性是如何實現的?後續將會逐一分解。