Martian 原名叫 Mars-Java,為了避免跟 java 商標產生衝突,所以改名了。
在遭受了 100 多條評論後,我認識到了一些問題,其中最大的就是 介面受理的請求方式太少了,在某些場景下不夠用。
首先呢,我得在解釋一次:Martian 是可以接收任意 http 請求的,只不過 api 介面只受理這麼幾種,我的限制不是做在服務上的,而是做在介面上的,所以呢 ajax 發出的那個 option 是可以正常接收並響應 200 的,完全沒問題。
希望大家以後不要在誤解咯。
介面受理的請求方式更多了,新增了 PUT 和 DELETE,也就是目前為止,介面可以受理 GET,POET,DELETE,PUT 四種請求方式了, [為什麼不全支援,暫時不予解釋] 。
API 新增 @MarsReference 註解
很簡單,跟之前的 GET,POST 一樣設定,只不過 ReqMethod 裡面多了兩個選項.
@RequestMethod(ReqMethod.PUT)
String expUploadRequest(ExpVO expVO)
我們目前的宣告式 API,採用的如下機制:
這樣會出現一些侷限,那就是一個 interface 只能對應一個實現類,玩起來就像是 service 的父介面一樣, 為了改善這個情況,我提供了一個新的註解 @MarsReference
這個註解怎麼用呢?請看下面示例,注意看註釋和雙引號裡的漢字
/**
* 老套路,正常宣告一個介面
*/
@MarsApi(refBean = "這裡還是可以引用 bean")
public interface ExpApi {
/**
* get 請求示例
* http://127.0.0.1:8080/expGetRequest?name=張三&names=王五&names=趙六
* @param expVO
* @return
*/
@MarsReference(beanName = "這裡的規則,請看下面第一點",refName = "這裡的規則,請看下面第二點",refType = RefType.METHOD)
List<ExpVO> expGetRequest(ExpVO expVO);
}
從這一刻開始,interface 和實現類徹底解耦了,他們不再是父子關係(父子關係那一套也一樣相容),一個 interface 可以引用多個 bean 裡面的方法或者屬性,在一定程度上增加了 interface 的靈活性。
Martian 官網:http://www.mars-framework.com
[admin
]