本文介紹spring boot集成swagger,自定義注解,攔截器,xss過濾,異步調用,定時任務案例
集成swagger--對於做前后端分離的項目,后端只需要提供接口訪問,swagger提供了接口調用測試和各種注釋的可視化web界面。
配置swagger的掃描包路徑,api信息等,見配置類SwaggerConfig。項目中遇到的下列注解都由swagger提供:
@Api、@ApiOperation、@ApiModel、@ApiModelProperty
訪問http://localhost/swagger-ui.html#/就可以看到swagger文檔,輸入入參,點擊try it out調接口,如圖:
自定義注解,攔截器,過濾器--spring boot提供了跨域請求的注解@CrossOrigin(當然也可以寫一個全局的過濾器),詳情見類UserController.class。
項目中XssFilter類定義了跨站腳本攻擊(xss攻擊)過濾,用到了ESAPI安全處理的jar包。
注解@TokenValidate實現了用戶是否登錄的校驗,必須登錄的接口加此注解;
攔截器RequestTimeConsumingInterceptor實現了接口耗時統計;
攔截器RepeatSubmitInterceptor實現了重復提交的校驗;
異步調用--UserController.class中注冊接口提供了異步發送郵件的功能。只需要在異步調用的方法添加注解@Async和在啟動類加注解@EnableAsync,
啟動項目並調接口查看執行時間可以看到異步調用已經生效。
定時任務--啟動類添加注解@EnableScheduling,用@Component放到定時任務的類上,@Scheduled放到定時任務的方法上就可以實現定時任務,見類TaskTest.class。
項目源碼地址:https://github.com/zhzhair/aopAndAnnotation-spring-boot.git