极速微服务开发,不止像JFial一样简单
一、介绍一款基于SprigCloud的微服务基础开发平台,旨在降低SprigCloud的复杂度,像使用JFial一样简单,但又包含整体解决方案(本人是JFial用户,从1.9版本开始现在也一直在使用,因此部分实现思路会借鉴JFial的一些模式,感谢@JFial作者波总提供这么优秀的框架),包含微服务相关的完整解决方案同时附加有权限管理、报表自定义、工作流、Cms等套件,可直接使用,Aooms基于ApacheLicece2.0开源协议,关于编写此框架的一些初衷,可通过此处诞生了解。
演示地址:https://www.yuboo.com/Aooms 服务器配置有限,请勿压测X3,重要的事情说三遍
文档地址:待完善
码云地址:https://gitee.com/cyb-javaer/Aooms
Github地址:https://github.com/yuboo/Aooms
二、核心功能(1)极简Cotroller
(2)基于shardig-sphere的多数据源支持
(3)基于Mybatis实现的Db+Record极简模式,附带物理分页实现
(4)基于Cosul的服务注册、发现
(5)服务熔断、限流、降级
(6)服务客户端、http客户端
(7)内置各种ID生成器(UUID、sowflake)
(8)穿透一切的数据对象DataBoss
(9)基于J2Cache的缓存
(10)其他更多功能,等你发现.......
二、内置集成系统(1)权限管理(实现中,基本完成)
(2)内容管理系统(规划中)
(3)报表系统(规划中)
(4)工作流系统(规划中)
(5)微信公众号(规划中)
(6)..............
三、界面预览四、简单Demo1.HelloWorld
@RestCotrollerpublic class HelloWorldCotroller exteds AoomsAbstractCotroller { /** * 基础访问 */ @RequestMappig("/hello") public void hello(){ Strig str = "hello world !"; this.rederText(str); }; /** * 获取基本参数 */ @RequestMappig("/hello2") public void hello2(){ Strig id = getParaStrig("id"); logger.ifo("id = {}" , id); this.rederText(id); }; /** * 获取路径参数 */ @RequestMappig("/hello/{id}") public void hello3(){ Strig id = getPathStrig("id"); logger.ifo("id = {}" , id); this.rederText(id); }; /** * 上传文件 */ @RequestMappig("/hello4") public void hello4(){ MultipartFile multipartFile = this.getParaFile("upload"); logger.ifo("fileName = {}", multipartFile.getName()); this.rederText("success"); }; /** * jso输出 */ @RequestMappig("/hello5") public void hello5(){ UserVo userVo = ew UserVo(); userVo.setName("zhagsa"); setResultValue("userVo",userVo); // 输出jso this.rederJso(); // this.rederJso(); 也可省略不写,默认会使用JSONReder }; /** * jso输出 */ @RequestMappig("/hello6") public void hello6(){ UserVo userVo = ew UserVo(); userVo.setName("zhagsa"); this.rederJso(userVo); }; /** * 文件下载 */ @RequestMappig("/hello7") public void hello7(){ this.rederFile("applicatio.yml", this.getClass().getResourceAsStream("/applicatio.yml")); }; /** * 图片输出 * @retur */ @RequestMappig("/hello8") public void hello8(){ this.rederImage("F:/1.pg","F:/default.pg"); }; /** * html输出 * @retur */ @RequestMappig("/hello9") public void hello9(){ this.rederHtml("标题 alert('hello world !'); "); }; /** * 模版页面输出 * @retur */ @RequestMappig("/hello10") public void hello10(){ ModelAdView mv = ew ModelAdView(); mv.addObject("ame","lisi"); mv.setViewName("/demo.html"); this.rederThymeleaf(mv); }; /** * 重定向 * @retur */ @GetMappig("/hello11") public void hello11(){ this.redirect("https://www.oschia.et"); };}2.用户管理示例
@RestCotroller@RequestMappig("/user")public class UserCotroller exteds AoomsAbstractCotroller { @Autowired private UserService userService; @RequestMappig("/fidList") public void fidList(){ userService.fidList(); }; @RequestMappig("/isert") public void isert(){ userService.isert(); }; @RequestMappig("/update") public void update(){ userService.update(); }; @RequestMappig("/delete") public void delete(){ userService.delete(); };}@Servicepublic class UserService exteds GeericService { @Autowired private Db db; public void fidList() {this.setResultValue(AoomsVar.RS_DATA, db.fidRecords("UserMapper.fidList", SqlPara.SINGLETON)); } @Trasactioal public void isert() {Record user = Record.empty().setByJsoKey("form"); db.isert("t_user",user); } @Trasactioal public void update() { Record user = Record.empty().setByJsoKey("form"); db.update("t_user",user); } @Trasactioal public void delete() { db.deleteByPrimaryKey("t_user",getParaStrig("id")); } }五、框架的一点声明关于框架的一点声明,框架目前处于开发阶段,会不定期更新码云上的代码同时会有系统博客同步更新,另外此项目是带有学习性质的摸索、尝试,是为了给想学习微服务的人一个学习上的帮助,大家一起学习、探讨,感受一个微服务开发平台从0到诞生的过程,因为可能有的人想学但没有方向又或者所在公司技术体系比较老,不具备微服务的学习环境,所以构建了该工程,希望能帮到一些人同时对我自己也是一次锻炼,预计2018年底会有版本发出,供大家完整的参考。











评论