<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] ## 一、Redis使用 注入工具類RedisRepository,封裝了Redis的各種api操作 ```java @Autowired private RedisRepository redisRepository; ``` &nbsp; ## 二、統一異常處理 ``` 通用異常處理:DefaultExceptionAdvice ``` ![](https://box.kancloud.cn/3b16058d093d0c316e61205f20698752_1299x429.png) >[info] 如果該工程沒有個性化異常處理,則只需要繼承 DefaultExceptionAdvice 類,并添加 @ControllerAdvice 注解即可 &nbsp; ## 三、日志埋點工具 * 格式為:{時間}|{來源}|{對象id}|{類型}|{對象屬性(以&分割)} ~~~ //例子1: PointUtil.info(user.getId(), "user_login", "username="+user.getUsername()+"&mobile="+user.getMobile()+"&openId="+user.getOpenId()); ~~~ * 埋點日志 * 日志路徑:`logs\point\point.log` * 上面例子生成的記錄如下 ~~~ 2019-01-03 10:32:01|user-center|1|user_login|username=admin&mobile=18888888888&openId=123 ~~~ &nbsp; ## 四、CacheManager集成 * 添加配置,設置過期時間,如果不配置的話就是永久不過期 * 例子如下:配置了兩個cache(menu和user)的過期時間 ```yaml zlt: cache-manager: ? configs: ? ? - key: menu #cacheKey ? ? ? second: 600 #過期時間(單位秒) - key: user second: 1800 ``` * 具體使用方式 ```java //在方法或者類上加上以下注解 @Cacheable //判斷緩存沒有就執行方法更新緩存,緩存有就直接返回緩存的值 @CachePut //標記每次都更新緩存 @CacheEvict //標記刪除緩存 ``` &nbsp; ## 五、方法級冪等性 * 主要作用于防止重復提交 * 具體設計可參考:[系統冪等性設計與實踐](http://www.hmoore.net/zlt2000/microservices-platform/925445) * service實現類繼承`SuperServiceImpl`,例子如下: ```java //例子1 private final static String LOCK_KEY_USERNAME = CommonConstant.LOCK_KEY_PREFIX+"username:"; String username = sysUser.getUsername(); boolean result = super.saveIdempotency(sysUser, lock , LOCK_KEY_USERNAME+username , new QueryWrapper<SysUser>().eq("username", username)); //例子2 private final static String LOCK_KEY_CLIENTID = CommonConstant.LOCK_KEY_PREFIX+"clientId:"; String clientId = client.getClientId(); boolean result = super.saveOrUpdateIdempotency(client, lock , LOCK_KEY_CLIENTID+clientId , new QueryWrapper<Client>().eq("client_id", clientId) , clientId + "已存在"); ``` &nbsp; ## 六、多租戶(應用隔離) 該功能默認關閉,添加以下配置到需要數據隔離的服務上即可開啟 ```yml zlt: tenant: enable: true ignoreTables: - sys_user - sys_role_user - sys_role_menu ignoreSqls: - com.central.user.mapper.SysUserMapper.findList ``` >[info] zlt.tenant.enable 是否開啟多租戶(動態修改sql),默認`false` > zlt.tenant.ignoreTables 配置不需要隔離的表名 > zlt.tenant.ignoreSqls 配置不需要隔離的語句,直接配置MyBatis的Mapper全路徑+sqlId 詳情查看:[多租戶(應用隔離)](http://www.hmoore.net/zlt2000/microservices-platform/1224728) &nbsp; ## 七、審計日志 用于記錄并審計關鍵數據修改的操作信息 >[info] 審計信息默認輸出到logger文件中:logs/audit/audit.log ![](https://img.kancloud.cn/40/f2/40f2dd6bee7d7081bd499b76faee2dee_323x199.png) ### 7.1. 配置信息 該功能默認關閉,添加以下配置到需要記錄審計日志的服務上即可開啟 ```yml zlt: audit-log: enabled: true ``` ### 7.2. 添加依賴 服務需要依賴該jar ```xml <dependency> <groupId>zlt-commons</groupId> <artifactId>zlt-log-spring-boot-starter</artifactId> </dependency> ``` ### 7.3. 添加注解 在需要審計的方法上添加 `@AuditLog` 注解,如果在類上添加則該類的所有方法都生效,支持 `spEL` 表達式 ![](https://img.kancloud.cn/f8/37/f837bd06fa350ee83a23ebbd9a17b5c1_777x185.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看