# Mars-Java **Repository Path**: figole/Mars-Java ## Basic Information - **Project Name**: Mars-Java - **Description**: Mars-Java是一个简单的,开箱即用的java框架,可以帮助你很快的建立后端服务 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: http://mars-framework.com/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 40 - **Created**: 2020-06-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README


Declarative API programming (DAP) framework
## Usage example [https://github.com/yuyenews/Mars-Example](https://github.com/yuyenews/Mars-Example) ## Program features ### 1. the declarative API You only need to add a annotation to the parent interface of your service to provide an interface to the outside world. We also support the traditional Controller ```java @MarsApi(refBean="The name of the bean to reference") public interface TestService { `Return type` selectList(TestDTO testDTO); } ``` ### 2. Single table addition, deletion, modification, and select without SQL ```java // Query a piece of data based on the primary key @MarsGet(tableName = "userinfo",primaryKey = "id") public abstract `Return type` selectById(int id); // Insert a piece of data @MarsUpdate(tableName = "userinfo",operType = OperType.INSERT) public abstract int insert(`Entity object parameter`); // Delete a piece of data based on the primary key @MarsUpdate(tableName = "userinfo",operType = OperType.DELETE,primaryKey = "id") public abstract int delete(int id); // Modify a piece of data based on the primary key @MarsUpdate(tableName = "userinfo",operType = OperType.UPDATE,primaryKey = "id") public abstract int update(`Entity object parameter`); ``` ### 3. Parameter verification requires only one annotation Just add a annotation to the field of VO ```java // Cannot be empty and is 2-3 digits long @MarsDataCheck(notNull = true,maxLength = 3L,minLength = 2L, msg = "id不可为空且长度必须在2-3位之间") private Integer id; // Regular check @MarsDataCheck(reg = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$",msg = "密码不可以为空且必须是6-12位数字字母组合") private String password; ``` How does the front end get prompted? Just request the API normally. If the verification fails, you will get such a json. ```json {"error_code":1128,"error_info":"提示文字"} ``` ### 4. Exception listener Usually when we write code, we need to add try {} catch () {} to each Controller method, which can be used to return the json string normally when the exception Spring has an ExecptionHandler to solve this problem, and Mars-java also provides a corresponding solution The solution is to do nothing, and if something goes wrong, it will automatically return the following json string to the front end ```json {"error_code":500,"error_info":"异常提示"} ``` ### 5. One-line annotations to resolve distributed locks Add RedisLock annotation on the method to be locked ```java @RedisLock(key = "Define a key yourself") public int insert(){ return 1; } ```