2020년 10월 9일 금요일

스프링프레임워크,AOP 포인트컷(pointcut),NameMatchMethodPointcut 이론및실습/포인트컷/Advisor/타겟클래스/위빙(자바동영상/스프링동영상/스프링교육)

 

스프링프레임워크,AOP 포인트컷(pointcut),NameMatchMethodPointcut 이론및실습/포인트컷/Advisor/타겟클래스/위빙(자바동영상/스프링동영상/스프링교육)


http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=870


스프링프레임워크,AOP 포인트컷(pointcut),NameMatchMethodPointcut 이론및실습/포인트컷/Advisor/타겟클래스

스프링프레임워크,AOP 포인트컷(pointcut),NameMatchMethodPointcut 이론및실습/포인트컷/Advisor/타겟클래스/위빙(자바동영상/스프링동영상/자바교육/스프링교육/SpringFramework/스프링프레임워크/스프링학원

ojc.asia


https://youtu.be/DwbwuY0e9WY





스프링프레임워크,AOP 포인트컷(pointcut),NameMatchMethodPointcut 이론및실습/포인트컷/Advisor/타겟클래스/위빙(자바동영상/스프링동영상/자바동영상/자바교육/스프링교육/SpringFramework/스프링프레임워크/스프링학원/자바학원/자바/JAVA)


[포인트컷(Pointcut) - NameMatchMethodPointcut]

가끔은 메소드 시그네처, 리턴형은 무시하고 메소드 이름으로 적용여부를 판단하는 포인트 컷이 필요하다.

이때 사용되는 포인트 컷이 NameMatchMethodPointcut 이다.

포인트 컷으로 사용할 클래스를 만들지 않아도 되며 직접 NameMatchMethodPointcut을 new 하면 된다.

-- 실습

[pom.xml에 추가]

<properties>

<org.springframework-version>5.2.9.RELEASE</org.springframework-version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${org.springframework-version}</version>

</dependency>

</dependencies>

[First.java]

public class First {

public void one() {

System.out.println("First One...");

}

public void two() {

System.out.println("First Two...");

}

public void three() {

System.out.println("First Three...");

}

}

[Second.java]

public class Second {

public void one() {

System.out.println("Second One...");

}

public void two() {

System.out.println("Second Two...");

}

public void three() {

System.out.println("Second Three...");

}

}

[SimpleAdvice.java]

import org.aopalliance.intercept.MethodInterceptor;

import org.aopalliance.intercept.MethodInvocation;

public class SimpleAdvice implements MethodInterceptor {

public Object invoke(MethodInvocation invocation) throws Throwable {

System.out.println(invocation.getMethod().getName());

Object o = invocation.proceed();

System.out.println("... SimpleAdvice의 충고가 적용됨 ...");

return o;

}

}

[NameMatchMethodPointcutExam.java]

import org.springframework.aop.Advisor;

import org.springframework.aop.framework.ProxyFactory;

import org.springframework.aop.support.DefaultPointcutAdvisor;

import org.springframework.aop.support.NameMatchMethodPointcut;

public class NameMatchMethodPointcutExam {

public static void main(String[] args) {

First target = new First();

Second target2 = new Second();

// Advisor

NameMatchMethodPointcut pc = new NameMatchMethodPointcut();

pc.addMethodName("one");

pc.addMethodName("two");

Advisor advisor = new DefaultPointcutAdvisor(pc, new SimpleAdvice());

// Proxy

ProxyFactory pf = new ProxyFactory();

pf.setTarget(target);

pf.addAdvisor(advisor);

First f = (First) pf.getProxy();

f.one();

f.two();

f.three();

System.out.println("-------------------");

// Proxy

ProxyFactory pf2 = new ProxyFactory();

pf2.setTarget(target2);

pf2.addAdvisor(advisor);

Second f2 = (Second) pf2.getProxy();

f2.one();

f2.two();

f2.three();

}

}

[실행결과]

one

First One...

... SimpleAdvice의 충고가 적용됨 ...

two

First Two...

... SimpleAdvice의 충고가 적용됨 ...

First Three...

-------------------

one

First One...

... SimpleAdvice의 충고가 적용됨 ...

two

First Two...

... SimpleAdvice의 충고가 적용됨 ...

First Three...


#NameMatchMethodPointcut, #스프링포인트컷, #스프링충고, #포인트컷, #스프링pointcut, #스프링AOP, #스프링advice, #SpringAOP, #스프링DI, #스프링IoC, #SpringDI, #SpringIoC, #자바스프링, #Spring동영상, #Spring강의, #스프링프레임워크, #스프링교육, #스프링학원, #스프링강좌, #스프링강의, #자바학원, #자바, #스프링동영상, #자바동영상, #스프링프레임워크교육, #스프링프레임워크강의, #스프링프레임워크학원



댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...