框架整體介紹:http://blog.csdn.net/flyxxxxx/article/category/7055640
對此框架有興趣或想參與開發的請加QQ羣:255195191在Spring MVC或dubbo以及其它任意接口調用(跨服務器或第三方調用)過程中,我們經常會用一些POJO對象作爲參數及返回結果,這會有以下問題:
1、作爲參數的POJO對象,是否所有的屬性都是接口所需要的?如果不是,調用都傳入了一些不需要的屬性值,接口是否對這個不需要的屬性值做了檢查?我相信幾乎100%的項目都沒有對此做檢查。
2、作爲參數,是否在JAVA端做了完整的參數檢查?就我瞭解到的項目來說,基本都只在前端做了參數的檢查工作,後端幾乎沒有檢查。
3、作爲輸出結果的POJO對象,是否所有的屬性值都是APP或前端調用時需要用到的?我相信不是,那麼,多餘的屬性會造成手機流量的浪費以及對APP或前端的干擾。
在Prototype框架中,通過註解來定義輸入輸出,所有輸入的參數都由框架自動檢查,未定義輸入的參數會完全忽略,未定義輸出的屬性不會輸出:
@ServiceDefine(hint = "...", value = "second demo")//定義一個服務接口
@RequestMapping("/query")
public class QueryUser extends Business{
@Input(@Prop(desc = "關鍵字",maxLength=20))//輸出
private String keyword;
@Output(desc="用戶列表",{@Prop(desc="ID",name="id"),@Prop(desc="姓名",name="name")})
private List<User> list;
}
上面的代碼相當於Spring MVC以下的代碼:
@RequestMapping("/query")
@ResponseBody
public List<User> queryUser(String keyword){
...
}
兩者之前的差別在於,Prototype框架不會把User對象中多餘的那些屬性輸出,保證接口輸入的安全性,完整的參數檢查,沒有多餘的結果輸出。