91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

本項目是一個demo項目,測試的主要是兩個東西:
1、spring mvc 的攔截器;
2、面向切面編程AOP
在實現過程中,我盡量貼近實際開發與場景,麻雀雖小,五臟俱全,個人感覺這個項目是web框架搭建的一個極簡之道實踐。
項目中可能還存在很多的問題,希望大家不吝賜教,謝謝。

資源截圖

代碼片段和文件信息

package?demo.spring.aspect.myAspect;

import?org.apache.log4j.Logger;
import?org.aspectj.lang.JoinPoint;
import?org.aspectj.lang.ProceedingJoinPoint;
import?org.aspectj.lang.annotation.After;
import?org.aspectj.lang.annotation.AfterReturning;
import?org.aspectj.lang.annotation.AfterThrowing;
import?org.aspectj.lang.annotation.Around;
import?org.aspectj.lang.annotation.Aspect;
import?org.aspectj.lang.annotation.Before;
import?org.aspectj.lang.annotation.Pointcut;
import?org.springframework.stereotype.Component;

/**?定義切面類?*/
@Component
@Aspect
public?class?MyAopAspect?{

????private?static?Logger?logger?=?Logger.getLogger(MyAopAspect.class);

????/**
?????*?@Pointcut(value?=?“execution?(*?demo.spring.aspect.service.impl.*.*(..))“)
?????*?定義統一攔截的切入點,其中第一個*表示任意返回類型,第二個*表示任意類名,
?????*?假如第二個*前面是兩個.則表示包括包里面的子包,第三個*表示任意方法名,后面的小括號表示任意參數值
?????*?同理,可以是:@Pointcut(value?=?“execution?(*?demo.spring.aspect.service.impl.AspectServiceImpl.*(..))“)
?????*?*/
????@Pointcut(“execution?(*?demo.spring.aspect.service.impl.*.*(..))“)
????public?void?myPointCut()?{

????}

????@Before(“myPointCut()“)
????public?void?myPointCutBefore(JoinPoint?point)?{
????????logger.info(“切面Before(下面打印方法及參數)“);
????????printMethodParams(point?null);
????}

????@After(“myPointCut()“)
????public?void?myPointCutAfter(JoinPoint?point)?{
????????logger.info(“切面After“);
????}

????@AfterReturning(value?=?“myPointCut()“?returning?=?“result“)
????public?void?myPointCutAfterReturning(JoinPoint?point?object?result)?{
????????logger.info(“切面AfterReturning(下面打印方法、參數及結果)“);
????????printMethodParams(point?result);
????}

????@AfterThrowing(pointcut?=?“myPointCut()“?throwing?=?“throwable“)
????public?void?afterThrowing(JoinPoint?point?Throwable?throwable)?{//?報錯切面
????????//?打印報錯
????????printMethodParams(point?“切面-方法異常--“?+?throwable.getMessage());
????}

????@Around(“myPointCut()“)
????public?object?around(ProceedingJoinPoint?point)?{?//?在程序運行前后執行,此處統計程序運行時間
????????String?className?=?point.getTarget().getClass().getSimpleName();
????????String?methodName?=?point.getSignature().getName();
????????object[]?methodArgs?=?point.getArgs();?//?獲取方法的參數值數組。
????????StringBuffer?methodArgsStr?=?new?StringBuffer();
????????for?(object?obj?:?methodArgs)?{
????????????methodArgsStr.append(obj.toString()).append(““);
????????}
????????try?{
????????????logger.info(String.format(“切面around?-?start[className=%s][methodName=%s]“?className?methodName));
????????????long?startTimeMillis?=?System.currentTimeMillis();
????????????//調用?proceed()?方法才會真正的執行實際被代理的方法
????????????object?result?=?point.proceed();
????????????long?execTimeMillis?=?System.currentTimeMillis()?-?startTimeMillis;
????????????logger.info(String.format(“切面around?-?end[className=%s][methodName=%s][result=%s]-耗時:%sms“?className
????????????????????methodName?result?execTimeMillis));
????????????return?result;
????????}?catch?(Throwable?te)?{
????????????logger.err

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\
?????文件????????1312??2019-01-26?20:45??demo.spring.aspect\.classpath
?????文件????????1094??2019-01-26?14:52??demo.spring.aspect\.project
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\.settings\
?????文件?????????639??2019-01-26?14:52??demo.spring.aspect\.settings\.jsdtscope
?????文件?????????430??2019-01-26?17:50??demo.spring.aspect\.settings\org.eclipse.jdt.core.prefs
?????文件??????????90??2019-01-26?14:52??demo.spring.aspect\.settings\org.eclipse.m2e.core.prefs
?????文件?????????695??2019-01-26?14:52??demo.spring.aspect\.settings\org.eclipse.wst.common.component
?????文件?????????252??2019-01-26?20:45??demo.spring.aspect\.settings\org.eclipse.wst.common.project.facet.core.xml
?????文件??????????49??2019-01-26?14:52??demo.spring.aspect\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2019-01-26?14:52??demo.spring.aspect\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件??????????50??2019-01-26?14:52??demo.spring.aspect\.settings\org.eclipse.wst.validation.prefs
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\log\
?????文件???????16651??2019-01-26?21:27??demo.spring.aspect\log\myLog-20190126.log
?????文件????????2577??2019-01-26?19:41??demo.spring.aspect\pom.xml
?????文件????????1364??2019-01-26?21:40??demo.spring.aspect\readme.txt
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\aspect\
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\aspect\myAspect\
?????文件????????4518??2019-01-26?21:01??demo.spring.aspect\src\main\java\demo\spring\aspect\myAspect\MyAopAspect.java
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\aspect\service\
?????文件?????????233??2019-01-26?21:07??demo.spring.aspect\src\main\java\demo\spring\aspect\service\IAspectService.java
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\aspect\service\impl\
?????文件?????????520??2019-01-26?21:07??demo.spring.aspect\src\main\java\demo\spring\aspect\service\impl\AspectServiceImpl.java
?????目錄???????????0??2019-01-26?21:53??demo.spring.aspect\src\main\java\demo\spring\aspect\web\
?????文件????????1771??2019-01-26?21:09??demo.spring.aspect\src\main\java\demo\spring\aspect\web\AspectTestController.java
?????文件?????????657??2019-01-26?17:21??demo.spring.aspect\src\main\java\demo\spring\aspect\web\baseController.java
............此處省略46個文件信息

評論

共有 條評論