Aooms 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Aooms 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Aooms 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发微服务框架
开源组织
地区 国产
投 递 者 风象南
适用人群 未知
收录时间 2018-02-05

软件简介

输入图片说明

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)..............

三、界面预览

输入图片说明输入图片说明输入图片说明

四、简单Demo

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年底会有版本发出,供大家完整的参考。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(16)
发表于软件架构专区
2018/11/19 07:22

Aooms 1.0.0-alpha.2 发布,极速微服务开发,界面新鲜出炉

Aooms 极速微服务开发,界面新鲜出炉,不止像JFinal一样简单 1.0.0-alpha.2 一、Aooms 一款基于SpringCloud的微服务基础开发平台,旨在降低SpringCloud的复杂度,像使用JFinal一样简单,但又包含整体解决方案,包含微服务相关的完整解决方案同时附加有权限管理、报表自定义、工作流、Cms等套件,可直接使用,Aooms基于Apache Licence 2.0开源协议。 二、核心功能 (1)极简Controller (2)基于sharding-sphere的多数据源支持 ...

0
47
发表于服务端专区
2018/09/25 08:47

Aooms 极速微服务开发 1.0.0-alpha.1,像 JFinal 一样简单

Aooms 极速微服务开发,像JFinal一样简单 1.0.0-alpha.1 一、Aooms 一款基于SpringCloud的微服务基础开发平台,旨在降低SpringCloud的复杂度,像使用JFinal一样简单(本人是JFinal用户,从1.9版本开始现在也一直在使用,因此部分实现思路会借鉴JFinal的一些模式,感谢@JFinal作者波总提供这么优秀的框架),包含微服务相关的完整解决方案同时附加有权限管理、报表自定义、工作流、Cms等套件,可直接使用,Aooms基于Apache Lice...

10
18
发表于服务端专区
2018/09/17 21:21

Aooms 极速微服务开发,像 JFinal 一样简单 1.0.0-alpha

Aooms 极速微服务开发,像JFinal一样简单 一、Aooms 一款基于SpringCloud的微服务基础开发平台,旨在降低SpringCloud的复杂度,像使用JFinal一样简单(本人是JFinal用户,从1.9版本开始现在也一直在使用,因此部分实现思路会借鉴JFinal的一些模式,感谢@JFinal作者波总提供这么优秀的框架),包含微服务相关的完整解决方案同时附加有权限管理、报表自定义、工作流、Cms等套件,可直接使用,Aooms基于Apache Licence 2.0开源协议...

4
19
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
16 评论
108 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部