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有哪些獨特的技術特點,這種簡易性是如何實現的?後續將會逐一分解。