第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

spring 基于aop 實現(xiàn)日志輸出 定義在controller層無效

spring 基于aop 實現(xiàn)日志輸出 定義在controller層無效

達令說 2019-02-21 01:07:10
業(yè)務場景:目前在開發(fā)一個web后端的程序,提供基于spring mvc的restful的接口給手機端調用。由于接口對性能和效率的要求比較高,為了更好的分析問題,這邊決定輸出日志對接口調用情況,以及頻率,做記錄。這邊考慮基于spring的aop來實現(xiàn)日志切面編程,下面看代碼:切面類 @Aspect public class CxxxAspect { /** * 定義一個切入點 */ @Pointcut("execution(* com..controller.*Controller.*Auth(..))") private void pointCutMethod() { } /** * 聲明前置通知 */ @Before("pointCutMethod()") public void doBefore() { System.out.println("前置通知"); } /** * 聲明后置通知 * @param result */ @AfterReturning(pointcut = "pointCutMethod()", returning = "result") public void doAfterReturning(String result) { System.out.println("后置通知"); System.out.println("---" + result + "---"); } /** * 聲明例外通知 */ @AfterThrowing(pointcut = "pointCutMethod()", throwing = "e") public void doAfterThrowing(Exception e) { System.out.println("例外通知"); System.out.println(e.getMessage()); } /** * 聲明最終通知 */ @After("pointCutMethod()") public void doAfter() { System.out.println("最終通知"); } /** * 聲明環(huán)繞通知 * @param pjp * @return * @throws Throwable */ @Around("pointCutMethod()") public Object doAround(ProceedingJoinPoint pjp) throws Throwable { System.out.println("進入方法---環(huán)繞通知"); Object o = pjp.proceed(); System.out.println("退出方法---環(huán)繞通知"); return o; } } 目標類 @Controller @RequestMapping(value="xxxx") @SuppressWarnings({ "rawtypes", "unchecked" }) public class CXXXController{ @ResponseBody @RequestMapping(value="/xxxx",method=RequestMethod.POST) public void xxxAuth(HttpServletRequest request){ //省略實際業(yè)務代碼 return result; } } 配置文件信息(保護個人隱私類名全路徑以xxxx代替) <aop:aspectj-autoproxy proxy-target-class="true"/> <bean id="caFaceAuthAspect" class="com.xxxxx.aspect.CxxxAspect"/> 通過main方法測試代碼: ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml"); context.start(); CAAuthController con=(CXXXController)context.getBean(CXXXController.class); con.xxxAuth(null, null); 日志輸出: 進入方法---環(huán)繞通知 前置通知 最終通知 例外通知 null 證明當前配置已經(jīng)ok,測試效果達到預期。但是用tomcat啟動時,通過http訪問到controll時,并沒有進入切面類,更別說通知方法了,請問這是什么情況。我有一個模糊的假設就是,我在main方法里面是手動實實在在的用controll類去調用了方法,所以觸發(fā)了通知的連接點條件,但是http訪問時,通過spring的mvc分發(fā),反射調用所以并沒有觸發(fā)連接點的條件。不知道我的假設是否正確,或者有相關的大神還請不吝賜教。
查看完整描述

4 回答

?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

right 同樣的問題解決了 謝謝。

查看完整回答
反對 回復 2019-03-01
?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

找了好久答案,原來在這里,贊

查看完整回答
反對 回復 2019-03-01
  • 4 回答
  • 0 關注
  • 463 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號