All Projects → yuyenews → Martian

yuyenews / Martian

Licence: mit
🎨 Martian 是一个基于NIO的JavaWeb编程框架,可以帮助你快速的开发后端服务

Programming Languages

java
68154 projects - #9 most used programming language
javaweb
17 projects

Projects that are alternatives of or similar to Martian

hasor
Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
Stars: ✭ 938 (+193.13%)
Mutual labels:  ioc, mvc, aop
Hasor
Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
Stars: ✭ 713 (+122.81%)
Mutual labels:  mvc, ioc, aop
java-bible
🍌 我的技术摘要
Stars: ✭ 2,950 (+821.88%)
Mutual labels:  ioc, mvc, aop
Java Bible
🍌 我的技术摘要
Stars: ✭ 2,919 (+812.19%)
Mutual labels:  mvc, ioc, aop
Cppwebframework
​The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.
Stars: ✭ 348 (+8.75%)
Mutual labels:  servlet, mvc
Coldbox Platform
A modern, fluent and conventions based HMVC framework for ColdFusion (CFML)
Stars: ✭ 220 (-31.25%)
Mutual labels:  mvc, aop
Latke
🌀 一款以 JSON 为主的 Java Web 框架。
Stars: ✭ 781 (+144.06%)
Mutual labels:  servlet, mvc
Farseer.Net
Provides consistent standard use of common components of the .Net Core language
Stars: ✭ 42 (-86.87%)
Mutual labels:  ioc, aop
LSFramework
手写山寨版spring学习aop、ioc思想的demo,没看过spring的源码,因为实在是太庞大了,参考部分网上博客及开源代码完成。
Stars: ✭ 53 (-83.44%)
Mutual labels:  ioc, aop
Asp.net MVC5 DDD EF6 IoC
Asp.net C# MVC5, EF6, DDD, IoC
Stars: ✭ 14 (-95.62%)
Mutual labels:  ioc, mvc
Blog.core
💖 ASP.NET Core 6.0 全家桶教程,前后端分离后端接口,vue教程姊妹篇,官方文档:
Stars: ✭ 3,542 (+1006.88%)
Mutual labels:  ioc, aop
Hiboot
hiboot is a high performance web and cli application framework with dependency injection support
Stars: ✭ 150 (-53.12%)
Mutual labels:  mvc, ioc
Interviews
A list of fancy questions I've been asked during the interviews I had. Some of them I ask when interviewing people.
Stars: ✭ 140 (-56.25%)
Mutual labels:  mvc, ioc
Furion
Make .NET development easier, more versatile, and more popular.
Stars: ✭ 902 (+181.88%)
Mutual labels:  mvc, ioc
CNeptune
CNeptune improve productivity & efficiency by urbanize .net module with meta-code to lay foundation for frameworks
Stars: ✭ 30 (-90.62%)
Mutual labels:  ioc, aop
tsioc
AOP, Ioc container, Boot framework, unit testing framework , activities workflow framework.
Stars: ✭ 15 (-95.31%)
Mutual labels:  ioc, aop
tiny4j
IOC, AOP, REST...
Stars: ✭ 15 (-95.31%)
Mutual labels:  ioc, aop
Nutz
Nutz -- Web Framework(Mvc/Ioc/Aop/Dao/Json) for ALL Java developer
Stars: ✭ 2,422 (+656.88%)
Mutual labels:  ioc, aop
Swoolefy
swoolefy是一个基于swoole实现的轻量级、高性能、协程级、开放性的API应用服务框架
Stars: ✭ 495 (+54.69%)
Mutual labels:  mvc, ioc
thinking-in-spring
Spring source code reading
Stars: ✭ 105 (-67.19%)
Mutual labels:  ioc, aop


基于NIO的Web编程框架

项目简介

Martian 是一个基于NIO的JavaWeb编程框架,可以帮助你快速的开发后端服务。 设计理念是 极致精简,专注于前后端分离,只保留必要的功能,并且使用最简洁的方式来实现这些功能。

在 声明式API 和 DAO 的加持下,Controller没有了方法体,数据库操作变得很简洁,极大的降低了Controller和数据库操作的代码量,让用户专注在Service层

  • 基于NIO,彻底脱离Tomcat,JBoss等容器
  • 让Controller变成了一个interface,降低了开发的工作量
  • 拥有其他web框架 拥有的大部分功能,比如AOP,IOC,声明式事务,异常监听等
  • 拥有自主开发的 半ORM持久层框架,并天然的集成到了Martian中

项目生态

官方资源

项目特性

一、编写Http接口不需要方法体

只需要在你的interface上加上一个注解,即可对外提供一个http接口,并且我们还支持传统的Controller写法

@MarsApi(refBean="要引用的bean的name")
public interface TestApi {

   返回类型 selectList(TestDTO testDTO);
}

二、单表增删改查无sql

// 根据主键查询一条数据
@MarsGet(tableName = "表名称",primaryKey = "主键字段名")
public abstract 要返回的实体类 selectById(int id);

// 单表新增
@MarsUpdate(tableName = "表名称",operType = OperType.INSERT)
public abstract int insert(实体对象参数);

// 单表根据主键删除
@MarsUpdate(tableName = "表名称",operType = OperType.DELETE,primaryKey = "主键字段名")
public abstract int delete(int id);

// 单表根据主键修改
@MarsUpdate(tableName = "表名称",operType = OperType.UPDATE,primaryKey = "主键字段名")
public abstract int update(实体对象参数);

三、参数校验只需一个注解

在API接口的参数对象里的字段上加上一个注解即可(VO的字段上加注解)

// 不可为空,且长度在2-3位
@MarsDataCheck(notNull = true,maxLength = 3L,minLength = 2L, msg = "id不可为空且长度必须在2-3位之间")
private Integer id;

// 正则校验
@MarsDataCheck(reg = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$",msg = "密码不可以为空且必须是6-12位数字字母组合")
private String password;

前端如何得到提示?

正常请求API就好了,如果校验不通过会得到这样一个json

{"error_code":1128,"error_info":"提示文字"}

四、异常监听器

通常我们在写代码的时候,需要给每个Controller的方法加上try{}catch(){},用来在异常的时候,能够正常的返回 json串

spring是有一个叫ExecptionHandler 来解决这个问题,而Martion也提供了对应的解决方案

解决方案就是什么都不用管,如果出了异常,会自动给前端返回如下json串

{"error_code":500,"error_info":"异常提示"}

五、一行注解,解决分布式锁

在要加锁的方法上添加RedisLock注解

@RedisLock(key = "自己定义一个key")
public int insert(){
  return 1;
}

社区以及联系方式

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].