본문 바로가기

개발중/Spring

AOP

728x90
반응형

 

 

AOP 를 사용함으로써 내가 지정해 놓은 메소드를 호출 하기 전에 거쳐야 하는 것들,

                                                    메소드를 호출이 끝난 후에 거쳐야 하는 것들,

 

을 지정해 줄 수 있는게 큰 영향인 것 같다.

 

servlet-context.xml

	<!-- aop설정 -->
	<beans:bean  id="bk"  class="net.hb.crud.aop.Banking"/>
	<aop:aspectj-autoproxy />

 

pom.xml

		<!-- 10-20-aop start-->
		<!-- aspetjWeaver, aspectjtools, cglib 추가 -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${org.aspectj-version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjtools</artifactId>
			<version>${org.aspectj-version}</version>
		</dependency>
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>2.2</version>
		</dependency>
	  <!-- 10-20-aop end-->

 

net.hb.crud.aop.Banking.java

package net.hb.crud.aop;

import java.util.Arrays;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
	
@Aspect
public class Banking {
	
	 //@Around("execution(public * net.hb.crud..*(..))")
	 @Around("execution(public * net.hb.crud.BoardDAO.boardDetail(..))")
	  public Object  timeLog(ProceedingJoinPoint pjp) throws Throwable{
	    long startTime = System.currentTimeMillis();   
	    long endTime=System.currentTimeMillis();
	    System.out.println("Object  timeLog(ProceedingJoinPoint pjp)메소드");
	    System.out.println(pjp.getSignature().getName()+"메소드 접속시간 : "+(endTime-startTime)+"초\n");
	    Object result=pjp.proceed();
	    return result;
	 }//end	

	 //@Before("execution(public * net.hb.crud..*(..))")
	 @Before("execution(public * net.hb.crud.BoardDAO.boardDetail(..))")
	 public void open( ){
	   System.out.println("public * net.hb.crud.BoardDAO.boardDetail(..)이 시작되기 전에");
	 }//end
	  
	 //@After("execution(public * net.hb.crud..*(..))")
	 @After("execution(public * net.hb.crud.BoardDAO.boardDetail(..))")
	  public void close( ){
		System.out.println("public * net.hb.crud.BoardDAO.boardDetail(..)이 시작된 후에");
	  }//end
}//class END

 

 

 

 

* 실행이 안 될 경우에 aop 체크를 해주자

728x90
반응형

'개발중 > Spring' 카테고리의 다른 글

차트 만들기  (0) 2020.11.18
Ajax 을 이용한 insert  (0) 2020.10.22
pom.xml 문서 기록  (0) 2020.10.20
mytabis 연동 설정  (0) 2020.10.20
db.properties  (0) 2020.10.20