java eles什么意思_Springboot 那么大,不用什么场景都用它吧,要不尝试下 Mars- Java ?...
基本概念
Mars-Java 是一个不需要容器的 Java 开发框架,不需要 Tomcat,不需要 JBoss,不需要 Netty,甚至连 Servlet 都不需要。
一个纯基于 JRE 类库开发的 Http 服务,一个不需要容器的 Java 开发框架。
他可以快速的开发出一个后端 Http 服务,支持 MVC,IOC,AOP,数据库操作,声明式事务等常用的特性,并且他更小,更快,更简单。
为什么要用 Mars-Java
当我们需要开发一些中小型网站的时候,如果使用 Java,那么往往会走向两个极端,要么使用非常简单的 JDBC+Servlet,要么使用非常巨大化的 Springboot+Mybatis,那么有没有一个折中的方案呢?当用户量可以预见的不会太多(多见于 B 端应用),又或者仅仅是一个逻辑不复杂的展示型网站,这个时候我们怎么办? 这个时候就可以使用 Mars-Java 了。
它非常的小,不到 Springboot+Mybatis 的一半,它功能齐全,包含了 Springboot 常用的几大功能,并且有自己的持久层封装。同时它也有自己的生态,目前有一个小型的分布式组件 Mars-Cloud 。
几乎可以解决你日常中的所有需求。
MVC 支持的请求方式
目前为止 MVC 支持 GET,POST 两种请求方式,这也是用的最多的两种方式,其他的暂时不支持。
传参方式支持以下三种:
application/x-www-form-urlencoded
multipart/form-data
application/json
数据库操作
一、简单的单表操作
// 根据主键查询一条数据
@MarsGet(tableName = "userinfo",primaryKey = "id")
public abstract `Return type` selectById(int id);
// 插入一条数据
@MarsUpdate(tableName = "userinfo",operType = OperType.INSERT)
public abstract int insert(`Entity object parameter`);
// 根据主键删除一条数
@MarsUpdate(tableName = "userinfo",operType = OperType.DELETE,primaryKey = "id")
public abstract int delete(int id);
// 根据主键修改一条数据
@MarsUpdate(tableName = "userinfo",operType = OperType.UPDATE,primaryKey = "id")
public abstract int update(`Entity object parameter`);
二、简单的分页操作
// 如果你的 sql 语句是固定的,那么只需要这样就可以分页了
@MarsSelect(sql = "select * from userinfo where name = #{name} and age = ${age}", resultType = 要返回的实体类.clss,page = true)
public abstract PageModel selectList(PageParamModel pageParamModel);
// 如果你的 sql 语句不固定,那么就这样
public PageModel findPage(PageParamModel pageParamModel) throws Exception {
String sql = "select * from userinfo where name like #{name}";
return JdbcTemplate.get().selectPageList(sql,pageParamModel,DemoEntity.class);
}
声明式 API
一、 先声明一下
@MarsApi(refBean = "expApiService")
public interface ExpApi {
/**
* get 请求示例
* http://127.0.0.1:8080/expGetRequest?name=张三&names=王五&names=赵六
* @param expVO
* @return
*/
List expGetRequest(ExpVO expVO);
}
二、实现这个接口就好
@MarsBean("expApiService")
public class ExpApiService implements ExpApi {
/**
* 这个方法上加了 aop 监听
* @param expVO
* @return
*/
@Override
@MarsAop(className = ExpAop.class)
public List expGetRequest(ExpVO expVO) {
// 打印接收到的参数,看是否接收成功
System.out.println(expVO.getName());
System.out.println(JSON.toJSONString(expVO.getNames()));
// 返回数据
return getExpResultData();
}
}
对,你们没看错,Controller 层没了,为什么会这样呢?这得从 Controller 的作用说起,在实际开发中,Controller 基本上起到两个作用,一个是参数校验,一个是响应数据。
在 Mars-Java 中,参数校验被封装掉了,直接用注解即可,响应数据,这个本来就没什么,直接返回就好,不需要去 Controller 里再返回一次了。
所以,干脆去掉了,让使用者专注在业务逻辑上。
java eles什么意思_Springboot 那么大,不用什么场景都用它吧,要不尝试下 Mars- Java ?...相关推荐
- Java开发人员必备的7大技能,每一个都必不可少
Java存活这么多年,目前Java软件开发工程师已经成为"香饽饽"了,工作环境好,就业薪资高,成为很多门外汉羡慕的对象,确实Java已经成为比较受欢迎的编程语言.可以说当下Java ...
- java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
Java提供了很多修饰符,主要分为访问控制修饰符和非访问控制修饰符.通常放在语句的最前端,用来定义类.方法.变量. 下面介绍一下Java提供的非访问控制修饰符. static 修饰符:修饰类方法和类变 ...
- java和网易我的世界有什么区别_网易我的世界手机版对比正版JAVA版我的世界有什么区别?...
你说的这部分都属于游戏内部机制问题 首先网易手机版实质上就是基岩版,还是更新贼慢的基岩版(笑).所以题主完全可以去minecraft wiki查找相关资料 然后我说一下我知道的一些主要差异吧 刷怪效率 ...
- cmd下运行java文件时,找不到或无法加载主类的解决方法
最近再看java,却被一个看似很基础的hellorworld头疼了十几分钟,百度了一下,若你在cmd下编辑及运行.java文件时报错,解决方案如下,如图所示: d盘根目录下的.java文件. 打开cm ...
- Java多线程之线程池7大参数、底层工作原理、拒绝策略详解
Java多线程之线程池7大参数详解 目录 企业面试题 线程池7大参数源码 线程池7大参数详解 底层工作原理详解 线程池的4种拒绝策略理论简介 面试的坑:线程池实际中使用哪一个? 1. 企业面试题 蚂蚁 ...
- java的学习步骤方法书籍大总结
java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其 ...
- 学完Java后可从事的十大领域!
Java是时下非常流行的语言,这意味着有很多很多不同的工作可供选择.Java软件工程师入行1-3年,年薪已达到10-15万,而且在IT行业工作经验越多,薪资待遇越高. 工作选择多,薪资待遇好,成了许多 ...
- Java实现印刷体转手写体—妈妈再也不用担心我被罚抄作业了
Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 文章目录 Java实现印刷体转手写体-妈妈再也不用担心我被罚抄作业了 缘起 开始开发 测试效果 开源地址和总结 郑重声明 因本文中涉及到爬虫 ...
- 【Java SE】SE“细节”知识大总结
目录 1.初识JAVA 1.1环境配置时JDK.JRE.JVM之间是什么关系? 1.2Java代码运行过程 1.3一个简单Java程序的解释 1.4什么叫"一次编译,到处运行"? ...
最新文章
- 用 js判断 一个数是否是素数(质数)_2020-09-20:如何判断一个数是质数?
- [转]两个经典的windbg调试案例,值得学习。
- 在.NET Core中使用Channel(一)
- Spring Boot使用MyBatis 3打印SQL的配置
- bash脚本切换管理员_开始为系统管理员使用Bash脚本
- Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析
- python可视化编程软件下载_mPython-mPython(图形化编程软件)下载 v0.5.0官方版-下载啦...
- 供应链SCOR模型搭建/改进
- 教你如何在github上提交代码(Window10示例,内含2021年github提交机制的更新变动)
- CAD转换PDF格式,文字模糊不显示
- 大型服装集团BI决策系统的分析主题模块
- 爬取豆瓣电影排行榜top250最新教程!经典爬虫案例
- pygame按键持续按下响应
- ardupilot 中关键坐标系
- 微信开发_网页授权获取用户的基本信息
- 【四二学堂】WeGame导致电脑蓝屏!!刚开始怀疑是他搞的鬼,现在发现出现问题的不止我一个....
- 阿里云服务器部署可道云
- 平台的核心交互与基础角色——互联网平台建设系列...
- 程序员 怎么增值_什么是“免费增值”应用程序,它们如何工作?
- 如何利用TL431设计一个可调电压源