歡迎您光臨本站 註冊首頁

Martian 框架釋出了 3.0.29 版本

←手機掃碼閱讀     admin @ 2020-08-07 , reply:0

Martian 原名叫 Mars-Java,為了避免跟 java 商標產生衝突,所以改名了。

先說點題外話

在遭受了 100 多條評論後,我認識到了一些問題,其中最大的就是 介面受理的請求方式太少了,在某些場景下不夠用。

首先呢,我得在解釋一次:Martian 是可以接收任意 http 請求的,只不過 api 介面只受理這麼幾種,我的限制不是做在服務上的,而是做在介面上的,所以呢 ajax 發出的那個 option 是可以正常接收並響應 200 的,完全沒問題。

希望大家以後不要在誤解咯。

本次更新的點

  1. 介面受理的請求方式更多了,新增了 PUT 和 DELETE,也就是目前為止,介面可以受理 GET,POET,DELETE,PUT 四種請求方式了, [為什麼不全支援,暫時不予解釋] 。

  2. API 新增 @MarsReference 註解

新增的 PUT 和 DELETE 怎麼用

很簡單,跟之前的 GET,POST 一樣設定,只不過 ReqMethod 裡面多了兩個選項.


 @RequestMethod(ReqMethod.PUT)
 String expUploadRequest(ExpVO expVO)

@MarsReference 註解是啥

我們目前的宣告式 API,採用的如下機制:

  • 建立 interface -> 建立實現類 -> 在 interface 上加上 MarsApi 註解

這樣會出現一些侷限,那就是一個 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);
 
 }
  1. beanName 屬性: 這裡也可以引用一個 bean,如果這裡引用了就以這個為主,如果這裡沒引用就以 interface 上的全域性為主
  2. refName 屬性: 要引用的資源,可以是方法名也可以是屬性名,如果不設定,預設為這個方法的名稱
  3. refType 屬性: 用來標記 refName 裡設定的是方法名還是屬性名,預設為方法名

從這一刻開始,interface 和實現類徹底解耦了,他們不再是父子關係(父子關係那一套也一樣相容),一個 interface 可以引用多個 bean 裡面的方法或者屬性,在一定程度上增加了 interface 的靈活性。

Martian 官網:http://www.mars-framework.com


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/117732/martian-3-0-29-released
Martian 框架釋出了 3.0.29 版本已經有185次圍觀

http://coctec.com/news/all/show-post-247505.html