<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### Lombok插件安裝 * 項目使用[Lombok](https://projectlombok.org/)插件簡化開發,請自行在編譯器中安裝,不安裝會報錯但不影響運行,常用注解說明: * `@Data`:自動生成get、set等方法 * `@Slf4j`:日志打印可直接使用`log.info()`等 ### 配置文件加密 * 配置文件可使用Jasypt加密,可到`cn.exrick.xboot.common`包中找到 JasyptUtil 工具類生成加解密結果,當檢測到格式為`ENC(xxx)`時會自動解密,當然也可直接明文(生產環境中可通過環境變量、命令行等形式進行設置) ~~~ # 配置文件加密key 生產環境中可通過環境變量、命令行等形式進行設置 jasypt: encryptor: password: xboot spring: # 數據源 datasource: # Jasypt加密 可到common-utils中找到JasyptUtil加解密工具類生成加密結果 格式為ENC(加密結果) password: ENC(F4B0s6u9xcDw3V+P0qC4CA==) ~~~ ### 啟用Elasticsearch與配置日志記錄位置 * 啟用Elasticsearch,操作日志使用ES或數據庫記錄配置 ~~~ spring: # Elasticsearch data: elasticsearch: # 暫未使用ES 關閉其持久化存儲 repositories: enabled: true xboot: # 日志記錄方式 true使用Elasticsearch記錄(需啟動并配置ES) false記錄至數據庫中(默認) logRecord: es: false ~~~ ### 操作日志注解使用 * 日志注解使用`@SystemLog(description="操作日志名稱", type=日志類型)` * 日志類型type默認為OPERATION操作日志 當然你可以自定義 ### 接口相關 * 為方便前臺配置代理,所有接口建議以統一路徑例如“/xboot”開頭 * 登錄成功后前臺請在返回的`result`字段中保存token(因登錄接口已需要圖片驗證碼驗證,需帶上驗證碼參數,詳見文檔[驗證碼過濾器使用](http://www.hmoore.net/exrick/xboot/1136968)或[Swagger接口文檔統一認證](http://www.hmoore.net/exrick/xboot/1027473)部分) ![](https://i.loli.net/2019/02/04/5c581d77f2cfc.png) * 之后的請求中請在header或參數中添加該token即可 ![](https://i.loli.net/2019/02/04/5c581d78061b4.png) ### 無狀態風格Token令牌交互相關配置 ~~~ xboot: token: # 設置為true后,token將存入redis,并具有單點登錄功能 默認false使用JWT交互 redis: true # 是否開啟單設備登陸 僅當token交互方式為redis時生效(默認60分鐘內無請求自動失效,下方可配置) sdl: true # token中存儲用戶權限數據 設為true開啟后可避免每次請求再獲取用戶權限,但有可能導致編輯權限菜單后無法讀取到最新權限數據(需用戶重新登錄) storePerms: true # token過期時間(分鐘) tokenExpireTime: 60 # 用戶選擇保存登錄狀態對應token過期時間(天) saveLoginTime: 7 # 限制用戶登陸錯誤次數(次) loginTimeLimit: 10 # 錯誤超過次數后多少分鐘后才能繼續登錄(分鐘) loginAfterTime: 10 ~~~ ### 無需認證接口配置 * 忽略鑒權url配置(不需要登錄認證 開放的接口 支持通配符) ~~~ # 忽略鑒權url ignored: urls: - /xboot/user/regist ~~~ ### 限流配置 * 分布式限流(基于Redis令牌桶算法) * 全局限流 ~~~ xboot: # 全局限流 ratelimit: enable: true # 每1秒內 timeout: 1000 # 總限制100個請求 limit: 100 # IP限流 iplimit: enable: true # 每1秒內 timeout: 1000 # 每個ip限制15個請求 limit: 15 ~~~ * 指定方法限流注解 ~~~ @RateLimiter(limit = 1, timeout = 5000) ~~~ * 支持多維度IP、uid等限流 詳見代碼 ### 同步鎖使用 * 分布式同步鎖(基于Redis) ~~~ @Autowired private RedisDistributedLockTemplate lockTemplate; lockTemplate.execute("訂單流水號", 5000, new Callback() { @Override public Object onGetLock() throws InterruptedException { //TODO 獲得鎖后要做的事 log.info("生成訂單流水號"); return null; } @Override public Object onTimeout() throws InterruptedException { //TODO 獲得鎖超時后要做的事 return null; } }); ~~~ ### 后端代碼生成 * 后端代碼生成方法在`cn.exrick.xboot.generator`包中的`XbootGenerator.java`或`XbootMPGenerator.java`工具類,支持JPA或Mybatis-Plus代碼生成,修改好生成類配置后運行主函數main方法即可生成三層相關代碼,別忘了在實體類中添加相關字段,運行項目后將自動生成數據庫表,詳見代碼生成文檔 ### Spring緩存注解 ~~~ ```java @CacheConfig(cacheNames = "user") public interface UserService extends XbootBaseService<User,String> { @Cacheable(key = "#username") User findByUsername(String username); } ``` ~~~ * 刪除刷新注解`@CacheEvict(key = "#u.username")`手動刪除刷新緩存時注意key為:`user::username` ### Quartz定時任務使用 * 在`cn.exrick.xboot.quartz.jobs`包下寫好好你的定時任務類,參考代碼中已有2個定時任務Job示例 * 啟動應用在后臺頁面“定時任務”菜單添加配置你寫的的定時任務類保存成功后將開始執行 ### Spring Security官方推薦權限管理:`@PreAuthorize("hasRole('ADMIN')")` ### Spring自帶定時:`@Scheduled(cron="cron表達式")` ### Spring異步:`@Async`
                  <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>

                              哎呀哎呀视频在线观看