-
@Min 最小值檢證
查看全部 -
1.引入切入點,避免代碼重復(fù):
@Pointcut("execution(public?*?com.imooc.controller.GirlController.*(..))") public?void?log(){ }
通知標注中直接引用切入點:
@Before("log()") public?void?doBefore(){ ????System.out.println("11111111111"); }
2.slf4j打印日志:
private?final?static?Logger?logger=LoggerFactory.getLogger(HttpAspect.class);
logger.info();
logger.error();
查看全部 -
1.AOP是什么?
????AOP是一種范式,一種程序設(shè)計思想,不是一門語言,不止在Java中有;AOP是面向切面編程思想,即:針對垂直的業(yè)務(wù)邏輯處理過程,把問題水平切割為某個步驟或階段;就是從不同的角度看問題,換個姿勢看世界,不同的設(shè)計思想還有:
????面向?qū)ο缶幊蹋∣OP),如Java
????面向過程編程(POP),如C
2.如何創(chuàng)建通知?
????1)pom.xml中引入切面spring-boot-starter-aop
????2)新建一個切面(@Aspect和@Component標志的類),然后在切面中創(chuàng)建通知,如使用@Before("execution(public?List com.imooc.controller.GirlController.grilList(..))")標注某一個方式,使之成為public?List?com.imooc.controller.GirlController.grilList(..)方法的前置通知;當(dāng)然,也可以使用*泛指某類下的所有方法:public?* com.imooc.controller.GirlController.*(..),在返回類型位置的*代表返回任意類型都匹配,參數(shù)列表中的..代表匹配任意參數(shù)
查看全部 -
請求表單(實體類)驗證:
@Min(value=值,message=提示信息 ) : 驗證實體類屬性,不能小于value
Controller方法入?yún)ⅲ篅Valid 實體參數(shù)1,BindingResult?參數(shù)2
@Valid 結(jié)合bean實體驗證參數(shù)
BindingResult返回驗證請況
BindingResult.hasErrors() 是否驗證錯誤
BindingResult.getFieldError().getDefaultMessage()獲取參數(shù)錯誤信息
查看全部 -
負責(zé)任的開發(fā)工程師都要進行單元測試
查看全部 -
spring啟動時會把所有類實例化,所以一般很少看到構(gòu)造方法
查看全部 -
面向切面編程(AOP),水平(切面)提取通用處理邏輯。
查看全部 -
為了方便異常處理,需要創(chuàng)建異常類:xxxException->
需要有成員變量
需要有g(shù)ettter&&setter方法
一定要繼承RuntimeException?。。?!因為spring-boot不會回滾Exception的事務(wù)
查看全部 -
統(tǒng)一異常處理第一步:
創(chuàng)建handle類,類名上加@ControllerAdvice
方法名上加@ExceptionHandler(vale = xxxException.class)
查看全部 -
進一步優(yōu)化:
將重復(fù)代碼放入ResultUtils中處理,并修改對應(yīng)controller部分
查看全部 -
包裝為統(tǒng)一對象第二步:
修改controller層,在正確or失敗之后返回對應(yīng)的結(jié)果
查看全部 -
包裝為統(tǒng)一格式返回的第一步:
創(chuàng)建一個domain對象,包含錯誤碼,提示信息,具體內(nèi)容等
getter和setter方法
查看全部 -
最終希望整理出來的返回格式:
無論響應(yīng)成功或者失敗,都應(yīng)該有統(tǒng)一的格式,這樣做是為了方便客戶端的接受與處理
查看全部 -
獲取請求相關(guān)參數(shù):
ServletRequestAttributes?attributes?=?(ServletRequestAttributes)?RequestContextHolder.getRequestAttributes(); HttpServletRequest?request?=?attributes.getRequest();
查看全部 -
使用log日志
定義private final satatic Logger loggeer = LoggerFactory.getLogger(xxx.class)【從slg4j中引入】
logger.info()
查看全部
舉報