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>

        pap-all-projectPAP 管理平臺

        聯(lián)合創(chuàng)作 · 2023-09-19 16:06

        針對參加工作以來遇到的業(yè)務(wù)問題,搭建一套自認(rèn)為較獨(dú)立的業(yè)務(wù)模塊,命名為PAP 快速開發(fā)框架。

        技術(shù)棧: 技術(shù)棧為 Spring Boot 2.x 配套 Spring Cloud、 Mybatis、 Redis 、RabbitMQ、Activiti

        基礎(chǔ)模塊:
        1、PAP-POM
                1、定義一個(gè)Maven項(xiàng)目,packaging設(shè)定為pom,用來約定依賴組件的版本號,保證所有 PAP 項(xiàng)目,所依賴的外部組件的版本號保持相同,防止不必要的組件間調(diào)用異常。
                
                2、由于目前的Maven項(xiàng)目中,parent 父節(jié)點(diǎn)只能有一個(gè),為了防止 sprint-boot 項(xiàng)目嘗試定義多個(gè) parent 節(jié)點(diǎn),參照 spring boot 多個(gè)parent 解決。
                那么業(yè)務(wù)模塊引用 PAP-POM 就可以采取如下方式
                        

        <!-- 自定義統(tǒng)一依賴版本的基礎(chǔ)項(xiàng)目,其他的項(xiàng)目在引用依賴的時(shí)候直接繼承該項(xiàng)目即可,這樣使用的依賴版本就能保持一致性。 -->
        <dependencyManagement>
            <dependencies>
             <dependency>
              <!-- Import dependency management from Spring Boot -->
              <groupId>com.pap</groupId>
              <artifactId>pap-pom</artifactId>
              <version>0.0.1-RELEASES</version>
              <type>pom</type>
              <scope>import</scope>
             </dependency>
            </dependencies>
        </dependencyManagement>

        2、 PAP-OBJ  PAP-BASE
                1、一些 POJO 類、通用的 BASE基類、Util方法;
                
                2、PAP-BASE 中,含有一些自定義的Mybatis Generator Plugin,用來方便的進(jìn)行代碼生成操作(PAP-CODE-GENERATOR)。
                    擴(kuò)展mybatis-generator-plugin查看
                    mybatis-genarator 自定義插件
                    mybatis-generator 自定義注釋
                    mybatis-generator 基類繼承
                    
        3、 PAP-CODE-GENERATOR
                1、此代碼生成器分為兩部分,一個(gè)是基于 Mybatis-generator-plugin 插件的代碼生成器,一個(gè)是基于 freemarker 的代碼生成器,需要修改 mybatis-generator.properties 文件的參數(shù)
                    1.1、修改數(shù)據(jù)源: classPath    driverClass    connectionURL    userId    password
                    1.2、修改文件路徑: targetProject    targetPackageBase        工作空間所屬路徑與package路徑
                    1.3、表名:    tableName    domainObjectName    alias    表名、映射的實(shí)體類名稱、表的別名(防止多張表的同名列)
                    
        4、 PAP-CALCULATE
                1、JAVA 的四則運(yùn)算計(jì)算器,解決 Excel 的公式,自定義的四則運(yùn)算公式
                    java 四則運(yùn)算,并可完成 自定義函數(shù) 表達(dá)式 功能
                    JAVA 計(jì)算器 自定義公式 解決EXCEL計(jì)算公式問題
                    
        自定義基礎(chǔ)模塊: 自定義starter
            1、 pap-bean-spring-boot-starter
                1、分布式主鍵生成,使用 twitter 的 IDWorker 生成器;
                2、spring自定義參數(shù)解析器,將 request.header 里面的用戶數(shù)據(jù)進(jìn)行解析成對象,方便controller使用;
                
            2、pap-logback-operdb-spring-boot-starter
                1、自定義操作日志, 將用戶的操作記錄異步持久化數(shù)據(jù)庫中;
                2、使用 Logback Interceptor, 將數(shù)據(jù)按需異步持久化,同時(shí)擴(kuò)展Logback 默認(rèn)的4個(gè)字段為 32個(gè),方便參數(shù)處理(源碼Gitee);

            3、pap-sequence-starter
                1、ERP 項(xiàng)目中,會有大量的 流水號生成的功能,將此處的功能進(jìn)行抽離;
                2、支持 DB(樂觀鎖) 或者 Redis(原子性incr) 兩種方式,按需引入(詳見ReadME.md 文件);
                
        業(yè)務(wù)基礎(chǔ)組件
            1、PAP-ACTIVITIY
                1、工作流,詳見ReadME.md
                    流程在線可視化定義、初始化任務(wù)、認(rèn)領(lǐng)任務(wù)、我的申請、我的代辦、批注歷史、任務(wù)審批、審批拒絕;
                    
            2、PAP-RabbitMQ
                1、消息中間件,注意此處可以通過消息中間件解決分布式事務(wù)最終一致性的問題(AOP+守護(hù)進(jìn)程);
                2、事務(wù)消息
                3、死信隊(duì)列,郵件發(fā)送;
                
            3、PAP-UPLOAD
                1、統(tǒng)一文件上傳: 注意修改臨時(shí)上傳文件,防止操作系統(tǒng)將臨時(shí)文件夾清空造成業(yè)務(wù)中斷;
                          
            4、PAP-SPRING-BOOT-SPI-DEMO
                1、SPI擴(kuò)展點(diǎn): SPI解決Saas的定制化服務(wù)問題;
                
            5、PAP-SPRING-BOOT-ADMIN
                1、軟件監(jiān)控: 解決服務(wù)可用性監(jiān)控;


        業(yè)務(wù)組件
        1、PAP-GATEWAY、 PAP-UUAJWT
                1、使用 spring-cloud-starter-gateway 定義網(wǎng)關(guān),同時(shí)使用 spring-boot-starter-security 進(jìn)行鑒權(quán)(使用 JWT 進(jìn)行登錄用戶信息維護(hù));
                
                2、定義 PAP-UUA 工程,此工程封裝 JWT 操作(登錄獲取Token、解析Token、刷新Token), gateway網(wǎng)關(guān)透傳uua項(xiàng)目,不做權(quán)限驗(yàn)證;
                
                3、具體的業(yè)務(wù)子系統(tǒng)需要進(jìn)行鑒權(quán)操作,則通過 JWT 整合 security 進(jìn)行登錄用戶鑒權(quán)處理。 Security認(rèn)證管理器JWT.
                

        瀏覽 25
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        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>
            蜜臀一区二区三区 | 又大又紧又爽水又多18p | 扒下小裙子小内裤打屁股网站 | 久久国产成人视频 | 久久道| 草逼影视| 国产精品wwww | 曰批视频免费 | 911在线无码精品秘 入口楼风 | 成人熟女国产麻豆91精东 |