1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Aooms基于 Spring Cloud 的微服務(wù)基礎(chǔ)開發(fā)平臺

        聯(lián)合創(chuàng)作 · 2023-09-28 05:37

        輸入圖片說明

        Aooms —— 基于SpringCloud的微服務(wù)基礎(chǔ)開發(fā)平臺

        極速微服務(wù)開發(fā),不止像JFinal一樣簡單

        一、介紹

            一款基于SpringCloud的微服務(wù)基礎(chǔ)開發(fā)平臺,旨在降低SpringCloud的復(fù)雜度,像使用JFinal一樣簡單,但又包含整體解決方案(本人是JFinal用戶,從1.9版本開始現(xiàn)在也一直在使用,因此部分實現(xiàn)思路會借鑒JFinal的一些模式,感謝@JFinal作者波總提供這么優(yōu)秀的框架),包含微服務(wù)相關(guān)的完整解決方案同時附加有權(quán)限管理、報表自定義、工作流、Cms等套件,可直接使用,Aooms基于Apache Licence 2.0開源協(xié)議,關(guān)于編寫此框架的一些初衷,可通過此處誕生了解。

        • 演示地址:https://www.yuboon.com/Aooms 服務(wù)器配置有限,請勿壓測X3,重要的事情說三遍 

        • 文檔地址:待完善

        • 碼云地址:https://gitee.com/cyb-javaer/Aooms

        • Github地址:https://github.com/yuboon/Aooms

        二、核心功能

        • (1)極簡Controller

        • (2)基于sharding-sphere的多數(shù)據(jù)源支持

        • (3)基于Mybatis 實現(xiàn)的 Db + Record 極簡模式,附帶物理分頁實現(xiàn)

        • (4)基于Consul的服務(wù)注冊、發(fā)現(xiàn)

        • (5)服務(wù)熔斷、限流、降級

        • (6)服務(wù)客戶端、http客戶端

        • (7)內(nèi)置各種ID生成器(UUID、snowflake)

        • (8)穿透一切的數(shù)據(jù)對象DataBoss

        • (9)基于J2Cache的緩存

        • (10) 其他更多功能,等你發(fā)現(xiàn).......

        二、內(nèi)置集成系統(tǒng)

        • (1)權(quán)限管理 (實現(xiàn)中,基本完成)

        • (2)內(nèi)容管理系統(tǒng)(規(guī)劃中)

        • (3)報表系統(tǒng)(規(guī)劃中)

        • (4)工作流系統(tǒng)(規(guī)劃中)

        • (5)微信公眾號(規(guī)劃中)

        • (6)..............

        三、界面預(yù)覽

        輸入圖片說明輸入圖片說明輸入圖片說明

        四、簡單Demo

        1. Hello World

        @RestController
        public class HelloWorldController extends AoomsAbstractController {
        
            /**
             * 基礎(chǔ)訪問
             */
            @RequestMapping("/hello")
            public void hello(){
                String str = "hello world !";
                this.renderText(str);
            };
        
            /**
             * 獲取基本參數(shù)
             */
            @RequestMapping("/hello2")
            public void hello2(){
                String id = getParaString("id");
                logger.info("id = {}" , id);
                this.renderText(id);
            };
        
        
            /**
             * 獲取路徑參數(shù)
             */
            @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(); 也可省略不寫,默認(rèn)會使用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("標(biāo)題 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"));
            }
           
        }

        五、框架的一點聲明

            關(guān)于框架的一點聲明,框架目前處于開發(fā)階段,會不定期更新碼云上的代碼同時會有系統(tǒng)博客同步更新,另外此項目是帶有學(xué)習(xí)性質(zhì)的摸索、嘗試,是為了給想學(xué)習(xí)微服務(wù)的人一個學(xué)習(xí)上的幫助,大家一起學(xué)習(xí)、探討,感受一個微服務(wù)開發(fā)平臺從0到誕生的過程,因為可能有的人想學(xué)但沒有方向又或者所在公司技術(shù)體系比較老,不具備微服務(wù)的學(xué)習(xí)環(huán)境,所以構(gòu)建了該工程,希望能幫到一些人同時對我自己也是一次鍛煉,預(yù)計2018年底會有版本發(fā)出,供大家完整的參考。

        瀏覽 19
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲无码影音先锋 | 大尺度师生恋禁片 | 五月综合婷婷丁香 | 免费三级外国 | 国产午夜一级片 | 特级西西人体444www高清视频 | a天堂亚洲一区二区三区在线观看 | 亚洲天堂中文 | 国产精品久久久久免费观看 | 国产精品人妻AⅤ在线看 |