<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      若依架構代碼改造

      概述

      若依架構是開源優秀版本,實現前后端分類,主要相關文檔鏈接如下:https://doc.ruoyi.vip/ruoyi/

      問題匯總和處理

      嘗試用若依架構改造本地項目,遇到問題匯總,便于大家參考交流

      問題1、登錄提示驗證碼有誤:

      解決:替換項目的時候,主要framework項目這個文件CaptchaConfig.java,如下行配置:KaptchaTextCreator一定帶上空間名稱邏輯,否則找不到

        // 驗證碼文本生成器
              properties.setProperty(KAPTCHA_TEXTPRODUCER_IMPL, "com.ruoyi.framework.config.KaptchaTextCreator");

      問題2、token存儲redis緩存里面的json,結果取值反序列化失敗:

      解決:主要替換common模塊里面Constants.java,修改配置如下,JSON_WHITELIST_STR 一定要配置自己的命名空間

        /**
           * 自動識別json對象白名單配置(僅允許解析的包名,范圍越小越安全)
           */
          public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" };
      
          /**
           * 定時任務白名單配置(僅允許訪問的包名,如其他需要可以自行添加)
           */
          public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.quartz.task" };
      
          /**
           * 定時任務違規的字符
           */
          public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
                  "org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config", "com.ruoyi.generator" };

      問題3、mapper找不到,提示無此class文件。

      解決:主要替換framework項目里面ApplicationConfig.java文件里面的注解,MapperScan一定改成自己的命名空間

      /**
       * 程序注解配置
       *
       * @author fts
       */
      @Configuration
      // 表示通過aop框架暴露該代理對象,AopContext能夠訪問
      @EnableAspectJAutoProxy(exposeProxy = true)
      // 指定要掃描的Mapper類的包的路徑
      @MapperScan("com.ruoyi.**.mapper")
      public class ApplicationConfig
      {
          /**
           * 時區配置
           */
          @Bean
          public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
          {
              return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
          }
      }

      建議4:建議修改下CacheConstants.java文件修改成自己的項目后綴,如下,方便鍵值分開;

      /**
           * 登錄用戶 redis key
           */
          public static final String LOGIN_TOKEN_KEY = "login_tokens_test:";

       常遇到問題列表:

      1、Long 類型id,查詢顯示頁面丟失精度顯示不一致。需要加上注解:

          @JsonSerialize(using = ToStringSerializer.class)
          private Long id;

      2、mapper的查詢日志顯示不出來,配置文件加上如下:

      # mybatis配置
      mybatis:
          configuration:
            log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

       3、提示數據未授權,其他模塊有效的token,到某個模塊跟日志提示:token無效

      解決方式:修改nacos配置文件,redis配置中和其他模塊保持一致。

      比如如下配置,其他模塊都抱持統一:(spring.redis.database標識redis緩存數據庫的編號,否則找其他數據庫就會報錯,找不到token)

       4、若依頁面集成

      1>、菜單配置。不要用外部鏈接,配置如下:

      2>、編寫iframe/index目錄下的vue(接受路由傳過來的參數,用iframe加載url)

      <template >
          <div>
               <iframe ref="tagFrame" width="100%" border="0" ></iframe>
          </div>
      </template>
      
      <script>
        import { getToken } from "@/utils/auth";
        export default {
        name: "fts",
        data() {
          return {
            tagQuery:null
          };
        },
        mounted(){
          this.loadFrameUrl();
        },
        created() {
          this.tagQuery=this.$route.query;
        },
      
        methods: {
          /** 加載基礎數據 */
          loadFrameUrl() {
            const iframe = this.$refs.tagFrame;
            const url=this.tagQuery.tagUrl+"?tms_org=0001&source="
            console.log(url)
            const deviceWidth = document.documentElement.clientWidth
            const deviceHeight = document.documentElement.clientHeight
            // 數字是頁面布局寬度差值
            //iframe.style.width = (Number(deviceWidth) - 40) + 'px'
            // 數字是頁面布局高度差
            iframe.style.height = (Number(deviceHeight) - 90) + 'px'
            this.openWindowFileHeader(iframe,url);
          },
      
          //打開上傳文件
          openWindowFileHeader(iframe,url){
            fetch(url, {
                headers: {
                    'UserInfo': getToken() // 添加自定義請求頭
                }
            })
            .then(response => response.text())
            .then(html => {
                iframe.contentWindow.document.open();
                iframe.contentWindow.document.write(html);
                iframe.contentWindow.document.close();
            });
          }
        }
      };
      </script>

      3>、集成第三方地址后端java關鍵性的代碼

      String jwt = request.getHeader(JWT_TOKEN_HEADER);//獲取token
      //解析token。采用
      Claims claims = Jwts.parser().setSigningKey(generateKey())
                      .parseClaimsJws(jwt).getBody();
      //基于jjwt和密鑰,生成key
          private Key generateKey() {
              return new SecretKeySpec(jwtSecret.getBytes(), SignatureAlgorithm.HS512.getJcaName());
          }

      jjwt對應的pom文件

      <dependency>
           <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>    
      </dependency>

       

      posted @ 2024-09-14 10:09  jiajinhao  閱讀(463)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品黄色精品黄色大片| 亚洲深夜精品在线观看| 久久精品国产亚洲αv忘忧草 | 国产精品久久久久久久网| AV无码免费不卡在线观看| xxxx丰满少妇高潮| av中文字幕一区人妻| 日本午夜精品一区二区三区电影| 国产系列丝袜熟女精品视频| 大名县| 亚洲国产精品男人的天堂| 日本黄色三级一区二区三区| 久久天天躁综合夜夜黑人鲁色| 翁牛特旗| 久久热这里只有精品66| 国产又色又爽又黄的在线观看| jizz国产免费观看| 精品国产迷系列在线观看| 1精品啪国产在线观看免费牛牛| 中文字幕人妻在线精品| 欧美色综合天天久久综合精品 | 国产精品一区二区三区三级 | 日韩一区二区在线看精品| 成人白浆一区二区三区在线观看| 加查县| 国产精品无卡毛片视频| 国产乱码1卡二卡3卡四卡5| AV最新高清无码专区| 久久天天躁狠狠躁夜夜躁2012| 国产av无码国产av毛片| 亚洲国产日韩A在线亚洲| 兴海县| 日本道播放一区二区三区| 亚洲a∨国产av综合av| 欧美成人精品三级网站| 国产无遮挡无码视频在线观看 | 四虎精品国产精品亚洲精| 国产精品一区二区人人爽| 被灌满精子的少妇视频| 亚洲人成电影在线天堂色| 精品国产午夜理论片不卡|