spring boot aop記録方法実行時コード例
本論文で研究したのは主にspring boot aop記録方法の実行時間の実現コードであり、具体的には以下の通りである。
性能を向上させるためには、まず各方法の実行時間を統計して、直接に方法の前後のlog出力が面倒くさいので、AOPで時間統計に参加できます。
依存を追加
具体的なコードを実現する
aop後の方法は正しく値に戻りません。
このプロキシ方法は必ず値を返します。さもなければ、コードには戻り値がありません。
デフォルトはJDKダイナミックエージェントです。cglibに変更します。
締め括りをつける
以上が、本論文のspring boot aop記録方法のタイムコードの例を実行する全ての内容であり、皆さんの助けを期待しています。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。
性能を向上させるためには、まず各方法の実行時間を統計して、直接に方法の前後のlog出力が面倒くさいので、AOPで時間統計に参加できます。
依存を追加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
appication.propertiesにプロファイルを追加します。
spring.aop.auto=true
spring.aop.aut属性はデフォルトでオープンしています。つまりAOP依存を導入すると、デフォルトでは@EnbaleAspect JAtoxyが追加されました。くれぐれも余計な情報を入れないようにしてください。具体的なコードを実現する
@Component
@Aspect
public class LogAspect {
private static final Log LOG = LogFactory.getLog(LogAspect.class);
/**
* .
* :
*
* ~ * .
* ~ * web
* ~ *
* ~ .. .
*/
@Pointcut("execution(* com.wedo.stream.service..*.*(..))")
public void logPointcut(){
}
@org.aspectj.lang.annotation.Around("logPointcut()")
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable{
// LOG.debug("logPointcut " + joinPoint + "\t");
long start = System.currentTimeMillis();
try {
Object result = joinPoint.proceed();
long end = System.currentTimeMillis();
LOG.error("+++++around " + joinPoint + "\tUse time :
" + (end - start) + " ms!");
return result;
}
catch (Throwable e) {
long end = System.currentTimeMillis();
LOG.error("+++++around " + joinPoint + "\tUse time :
" + (end - start) + " ms with exception : " + e.getMessage());
throw e;
}
}
}
問題に注意するaop後の方法は正しく値に戻りません。
このプロキシ方法は必ず値を返します。さもなければ、コードには戻り値がありません。
//
public void doAround(ProceedingJoinPoint joinPoint){}
Spring AOP部分はJDKダイナミックエージェントまたはCGLOIBを使用してターゲットオブジェクトのためのプロキシを作成します。少なくとも一つのインターフェースがプロキシの目的で実現されると、JDK動的エージェントが使用される。このターゲットタイプが実装されるすべてのインターフェースは、エージェントによってプロキシされる。ターゲットオブジェクトがインターフェースを実装していない場合、CGLOIBエージェントが作成される。デフォルトはJDKダイナミックエージェントです。cglibに変更します。
締め括りをつける
以上が、本論文のspring boot aop記録方法のタイムコードの例を実行する全ての内容であり、皆さんの助けを期待しています。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。