Mars-java 2.2.2 发布,不需要容器的 Java Web 开发框架

 贝克街的天才
发布于 2019年10月22日
收藏 29

本次更新如下:

  1. 取消了MarsMapping注解,Controller里的所有public方法会自动映射成一个http接口,默认请求方式为get
  2. 新增了RequestMethod注解,用来指定http接口的请求方式(不加默认为get)
  3. 将Resource注解换成了MarsWrite注解,用法保持不变(防止跟jdk自带的Resource混淆)
  4. 将redis模块从Mars-extends项目移到了主项目,以后连接redis不在需要导入Mars-extends扩展包了
  5. 对Mars-config项目进行了整理,并且将依赖的Mars-java包升级到了2.2.2
  6. 升级了 cglib,asm,netty,等多个第三方依赖包
  7. 对代码进行了大量的重构和优化,性能更进一步提升

Controller的定义

@Controller
public class TestController {

  
    /**
     * 方法的参数 可以是HttpRequest,HttpResponse以及自定义实体对象,顺序不限
     */
    public List<Map<String,Object>> selectList(HttpRequest request, HttpResponse response, 自定义实体类名 参数名){
        return null;
    }

    /**
     * 方法的参数 可以是HttpRequest,HttpResponse以及自定义实体对象,顺序不限
     */
    @RequestMethod(ReqMethod.POST)
    public int insert(HttpRequest request, HttpResponse response){
        return 0;
    }
}

如上面的实例所示,依然跟以前一样,用Controller注解来定义一个Controller,Controller里的public方法会自动映射成一个http接口,如果要指定请求方式的话,可以用RequestMethod注解

Redis用法

在配置文件中加入如下配置

#redis配置
redis:
  # 这些都有默认值,可以不配
  maxTotal: 10
  maxIdle: 20
  minIdle: 2
  numTestsPerEvictionRun: 10000
  timeBetweenEvictionRunsMillis: 10000
  minEvictableIdleTimeMillis: 10000
  softMinEvictableIdleTimeMillis: 10000
  maxWaitMillis: 1000
  testOnBorrow: true
  testWhileIdle: true
  testOnReturn: true
  jmxEnabled: false
  jmxNamePrefix: pool
  blockWhenExhausted: false

  # 这个必须配置
  jedisShardInfos:
    -
      name: master
      host: 10.211.55.5
      port: 6379
      password: 123456

使用RedisTemplate进行redis操作

RedisTemplete.set(key,value);
RedisTemplete.get(key,value);

Jedis里的其他方法都支持

 官网地址:http://mars-framework.com/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Mars-java 2.2.2 发布,不需要容器的 Java Web 开发框架
加载中

精彩评论

冷冷gg
冷冷gg
👍 支持

最新评论(8

Leaybc
Leaybc
是个不错的想法, 值得关注
l
liushengOS
底层是netty?
tianaiyouq
tianaiyouq
我想问下,假如我在controller中写一些公共的方法,它会不会也被映射成接口,那样的话不是很浪费资源么,再一个,一般请求方式都会手动写一下比如指定 get post 什么的,那么为什么不学下spring的 @GetMapping注解什么的呢
贝克街的天才
父类的方法不会被映射,只有当前类自己的public方法才会被映射。 这么设计是基于以下原因的:
1. controller本身就是最前面的一层,他不会提供方法给别的controller调用吧,更加不会提供方法给service调用吧
2. 基于第一点,可以得出,controller里的方法 如果不打算作为一个http接口来暴露,完全可以定义成private,这样就不会浪费资源了
冷冷gg
冷冷gg
👍 支持
LarryKoo
LarryKoo
轮子太多,这个 Mars 和 Vert.x 很像啊
贝克街的天才
可以分享下 Vert.x的官网链接吗? 我搜到的好像不太对
冰力
冰力
https://vertx.io
返回顶部
顶部