Aooms 介绍
Aooms —— 基于SpringCloud的微服务基础开发平台
极速微服务开发,不止像JFinal一样简单
一款基于SpringCloud的微服务基础开发平台,旨在降低SpringCloud的复杂度,像使用JFinal一样简单,但又包含整体解决方案(本人是JFinal用户,从1.9版本开始现在也一直在使用,因此部分实现思路会借鉴JFinal的一些模式,感谢@JFinal作者波总提供这么优秀的框架),包含微服务相关的完整解决方案同时附加有权限管理、报表自定义、工作流、Cms等套件,可直接使用,Aooms基于Apache
Licence 2.0开源协议,关于编写此框架的一些初衷,可通过此处诞生了解。
演示地址:https://www.yuboon.com/Aooms 服务器配置有限,请勿压测X3,重要的事情说三遍
文档地址:待完善
**码云地址:https://gitee.com/cyb-javaer/Aooms**
**Github地址:https://github.com/yuboon/Aooms**
(1)极简Controller
(2)基于sharding-sphere的多数据源支持
(3)基于Mybatis 实现的 Db + Record 极简模式,附带物理分页实现
(4)基于Consul的服务注册、发现
(5)服务熔断、限流、降级
(6)服务客户端、http客户端
(7)内置各种ID生成器(UUID、snowflake)
(8)穿透一切的数据对象DataBoss
(9)基于J2Cache的缓存
(10) 其他更多功能,等你发现.......
(1)权限管理 (实现中,基本完成)
(2)内容管理系统(规划中)
(3)报表系统(规划中)
(4)工作流系统(规划中)
(5)微信公众号(规划中)
(6)..............
1. Hello World
@RestController public class HelloWorldController extends AoomsAbstractController { /** * 基础访问 */ @RequestMapping(/hello) public void hello(){ String str = hello world !; this.renderText(str); }; /** * 获取基本参数 */ @RequestMapping(/hello2) public void hello2(){ String id = getParaString(id); logger.info(id = {} , id); this.renderText(id); }; /** * 获取路径参数 */ @RequestMapping(/hello/{id}) public void hello3(){ String id = getPathString(id); logger.info(id = {} , id); this.renderText(id); }; /** * 上传文件 */ @RequestMapping(/hello4) public void hello4(){ MultipartFile multipartFile = this.getParaFile(upload); logger.info(fileName = {}, multipartFile.getName()); this.renderText(success); }; /** * json输出 */ @RequestMapping(/hello5) public void hello5(){ UserVo userVo = new UserVo(); userVo.setName(zhangsan); setResultValue(userVo,userVo); // 输出json this.renderJson(); // this.renderJson(); 也可省略不写,默认会使用JSONRender }; /** * json输出 */ @RequestMapping(/hello6) public void hello6(){ UserVo userVo = new UserVo(); userVo.setName(zhangsan); this.renderJson(userVo); }; /** * 文件下载 */ @RequestMapping(/hello7) public void hello7(){ this.renderFile(application.yml, this.getClass().getResourceAsStream(/application.yml)); }; /** * 图片输出 * @return */ @RequestMapping(/hello8) public void hello8(){ this.renderImage(F:/1.png,F:/default.png); }; /** * html输出 * @return */ @RequestMapping(/hello9) public void hello9(){ this.renderHtml(标题 alert('hello world !'); ); }; /** * 模版页面输出 * @return */ @RequestMapping(/hello10) public void hello10(){ ModelAndView mv = new ModelAndView(); mv.addObject(name,lisi); mv.setViewName(/demo.html); this.renderThymeleaf(mv); }; /** * 重定向 * @return */ @GetMapping(/hello11) public void hello11(){ this.redirect(https://www.oschina.net); }; }
2. 用户管理示例
@RestController @RequestMapping(/user) public class UserController extends AoomsAbstractController { @Autowired private UserService userService; @RequestMapping(/findList) public void findList(){ userService.findList(); }; @RequestMapping(/insert) public void insert(){ userService.insert(); }; @RequestMapping(/update) public void update(){ userService.update(); }; @RequestMapping(/delete) public void delete(){ userService.delete(); }; } @Service public class UserService extends GenericService { @Autowired private Db db; public void findList() { this.setResultValue(AoomsVar.RS_DATA, db.findRecords(UserMapper.findList, SqlPara.SINGLETON)); } @Transactional public void insert() { Record user = Record.empty().setByJsonKey(form); db.insert(t_user,user); } @Transactional public void update() { Record user = Record.empty().setByJsonKey(form); db.update(t_user,user); } @Transactional public void delete() { db.deleteByPrimaryKey(t_user,getParaString(id)); } }
关于框架的一点声明,框架目前处于开发阶段,会不定期更新码云上的代码同时会有系统博客同步更新,另外此项目是带有学习性质的摸索、尝试,是为了给想学习微服务的人一个学习上的帮助,大家一起学习、探讨,感受一个微服务开发平台从0到诞生的过程,因为可能有的人想学但没有方向又或者所在公司技术体系比较老,不具备微服务的学习环境,所以构建了该工程,希望能帮到一些人同时对我自己也是一次锻炼,预计2018年底会有版本发出,供大家完整的参考。
Aooms 官网
https://gitee.com/cyb-javaer/Aooms
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。