Martian 框架发布了 3.0.29 版本

2020-08-06 23:32:48 +08:00
 Joker123456789

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 只能对应一个实现类,玩起来就像是 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

3147 次点击
所在节点    Java
28 条回复
pushback
2020-08-07 18:12:04 +08:00
楼上笑死我了
haozhang
2020-08-07 21:55:11 +08:00
@yiyi11 那你认一下错啊,手动狗头
yiyi11
2020-08-07 22:11:39 +08:00
@haozhang 所以我想问那段英文描述的真实性,作者到现在都不给我一个正面的答复?
gowk
2020-08-07 23:26:57 +08:00
别吵了,有意思么,有这时间多写点代码不好吗😂
haozhang
2020-08-08 00:59:54 +08:00
@yiyi11 所以你倒是看看作者的回复啊,小伙子
aitaii
2020-08-08 07:50:00 +08:00
帮楼上的请教一下楼主:
官网介绍中提到
>More than 100 companies have chosen Martian and have provided services to more than 200 individual developers

然后在 谁在使用 这个环节官网中的介绍只有几个国画风的 logo 。
是否愿意介绍一下哪些公司在用呢?
tctc4869
2020-08-08 08:59:37 +08:00
现在很多 java mvc 框架,甚至融合持久层,同质化太严重了,导致想选的就那么几个(不过 Spring MVC 的确很啰嗦)。所以能不能有点其他比较有创意的突破。
Joker123456789
2020-08-08 10:48:09 +08:00
@aitaii 可以,待我后期整理一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/696302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX