<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pap-all-projectPAP 管理平臺(tái)

          聯(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,用來約定依賴組件的版本號(hào),保證所有 PAP 項(xiàng)目,所依賴的外部組件的版本號(hào)保持相同,防止不必要的組件間調(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)目中,會(huì)有大量的 流水號(hào)生成的功能,將此處的功能進(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-UUA、 JWT
                  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)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产高清一级a片免费看古女 | 免费毛片+一区二区三区 | 黄色录像视频大片 | 青青草成人在线播放 | 大香蕉在线视频99 |