Mars-Java

mars-java介绍

官网地址

开发背景

做web后端的可能都知道spring,这也是唯一一个后端框架,无论市面上运用SSM还是SSH,万变不离其宗都离不开spring,spring已有多年历史,而mars-java才刚刚展露风采,但是spring也有自己的不足之处,而一个全新的东西,所有都是重新开始,有望成为全新的国内的后端开源框架。

JS框架有 react,vue,AngularJS,而后端框架只有spring,很多人说我是造轮子,但我不这么认为,所以…是时候挑战一下spring了,我希望每个人都能参与进来,贡献代码,让后端开发有更多的选择

我们的使命是,让写代码变成一件快乐的事。

不希望程序员在项目搭建上花费太多时间,又或者不断的重复一些套路。 虽然现在的版本还未达到我们的愿景,但是,我相信不会太远。

mars-java是什么

Mars-java是一个不需要容器的javaWeb开发框架,以netty作http服务管理,支持AOP,IOC,MVC,有自己的JDBCTemplete,并且集成了Mybatis作为持久层,除此之外还提供了Mars-config 来支撑远程配置,Mars-extends 来支持更多的功能以及工具类,框架持续迭代中,未来将更加强大。

能做什么

  • 使用netty做的http服务
  • 使用JWT做的会话管理
  • 支持AOP,IOC,MVC,Mybatis,事务管理
  • 通过 Mars-cloud 可以分布式部署
  • 通过 Mars-config 可以远程配置【开发中】

缺点有哪些

  • 只支持main方法启动,不可以打war包
  • 只能给前端返回json,二进制流,不支持转发和重定向
  • 目前刚刚起步,使用中还存在很多问题希望能够慢慢改进

注意事项:

  1. 项目只可以打jar包,不可以打war包,不然运行不了
  2. 不支持容器运行,只能打jar包后,通过命令运行jar包
  3. 需要jdk8 以上的版本
  4. 本项目的mysqljdbc驱动jar包,用的是8.x版本,如果要降级的话,可以将这个jar包排除,再引入你要的jdbc驱动jar就好了
  5. 数据源用的是阿里巴巴的Druid数据源

官方文档

Document

官方源码

GitHub源码地址
GITEE源码地址

扩展包

支持redis连接

封装了 Email, MD5, AES 和 其他工具类 并 集成了hutool

生态

Mars-Java_第1张图片

简单对比

名称 AOP IOC MVC 持久层 configuration file startup method
Mars-java OK OK OK 目前支持mybatis,有自己的JDBCTemplete 只有一个,并只支持远程配置 Main方法
Springboot OK OK OK 支持大部分主流框架 只有一个,并只支持远程配置 Main方法,War包+Tomcat

开发案例

创建简单的Maven项目

Mars-Java_第2张图片

导入pom文件



    4.0.0

    com.mars
    mars_java
    1.0-SNAPSHOT

    
        
            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                        
                            
                            com.mars.Start
                            
                            true
                            
                            ./lib/
                            
                            false
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy
                        package
                        
                            copy-dependencies
                        
                        
                            ${project.build.directory}/lib
                        
                    
                
            
        
    

    
        
            com.github.yuyenews
            mars-start-simple
            2.1.6
        
    

创建启动类

public class Start {
    public static void main(String[] args) {
        StartMars.start(Start.class);
    }
}

创建启动类需要注意启动类的位置,不然会报错,启动服务的main方法所在的类,必须放在两层包名中,比如[com.mars,com.test]等,不允许放在[com,cn]等包中,更不允许放在包外面

Mars-Java_第3张图片

创建Controller层

@Controller
public class TestController {

    /**
     * 方法的参数 可以是HttpRequest,HttpResponse以及自定义实体对象,顺序不限
     */
    @MarsMapping(value = "test",method = RequestMetohd.GET)//指定接口名称以及请求方式
    @MarsLog  //用来打印接口请求日志
    public String test(HttpRequest httpRequest, HttpResponse response,Object object){// Object为 自定义实体类名 参数名
        System.out.println("httpRequest = " + httpRequest + ", response = " + response);
        return "hello world";
    }

}

然后启动测试访问:

http://域名/MarsMapping的value值

需要响应给前端的数据,直接在方法里返回即可,框架会自动转换成json格式 并响应
Mars-Java_第4张图片
–作者:额滴神

你可能感兴趣的:(Java)