안녕하세요 저는 봄 MVC를 배우기 시작했습니다. 코드를 작성하기에 충분하지만 AOP를 이해하기 힘든 개념으로 이미 확인했습니다. post. 스프링 문서를 살펴 보았습니다. 나는 설명이 평신도 용어로 이해하기 어렵 기 때문에 여전히 혼란 스럽다. AOP는 일반적인 로깅 예제를 가지고 있습니다. 아직도 그 영혼을 이해하지 못했습니다. 당신은 평범한 언어로 그것의 유무에 관계없이 샘플 구현의 개념을 설명해 주시겠습니까? 좋은 튜토리얼에 대한 링크는 환영합니다. 이 게시물이 쓸모 없도록 긴 인수를 게시하지 마십시오. 이것은 설명을위한 것입니다. 그것을 사용하는 Benifits/단점은 지금 무시 될 수 있습니다.스프링 프록시를 사용한 스프링에서의 Aspect Oriented Programming에 대한 설명
2
A
답변
3
Aspecting을 정의 할 때 가장 쉬운 방법은 단일 표현식으로 프록시 (또는 프록시)를 정의하는 선언적 방법이라고 생각합니다.
인위적인 상황 :
당신이 '게터'메소드가 호출 횟수를 계산하려는 말, 응용 프로그램의 어떤 getter 메소드. 음, 각각의 'getter'메소드를 개별적으로 찾고 정적 카운터를 증가시킵니다. 그것은 당신에게 받아 들여질 수도 있지만, 그 시점부터 응용 프로그램에 추가되는 각각의 'getter'메소드에 대해서도 동일한 작업을 수행해야합니다. 가로 세로 2 주 가지로 구성되어
:
는 측면을 고려하십시오. 실행되는 코드 인 프록시와 프록시 코드가 적용되는 위치를 알려주는 선언적 표현식.
메서드 호출 전이나 후에 카운터를 자동으로 증가시키는 'getter'에 대해 프록시를 작성할 수 있습니다. 이 프록시의 문제점은 여전히 각 'getter'메소드에 적용해야한다는 것입니다. 이것은 양상이 빛나는 곳입니다. '모든이 getter 용 getter'메소드라는 간단한 정의 (좋아하는 aspecting 라이브러리 표현식 언어를 통해)를 작성할 수 있습니다. SpringAOP를 사용
예 : 예
@Aspect
public class MyAspect
{
private static int counter = 0;
@Before("execution(* get*())")
public void incrementCounterProxy()
{
counter++;
}
}
설명 :
제대로 측면을 데리러 당신의 봄 컨테이너와 모든 설정을 가정하면, 이것은 우리의 인위적인 목표를 달성해야한다.
@Aspect
은 클래스를 측면 포함 후보 클래스로 표시합니다.@Before
은 프록시 유형을 표시합니다. 메서드의 코드는 대상 메서드 호출 전에 만 수행하는 프록시입니다.execution(* get*())
은 'get'으로 시작하고 매개 변수가없는 메소드의 모든 실행에이 프록시를 적용하는 선언문입니다.
관련 문제
- 1. Aspect Oriented 프로그래밍이란 무엇입니까?
- 2. 타사 도구가없는 Aspect Oriented Programming에 대해 알아볼 수있는 좋은 자료입니다.
- 3. Aspect Oriented Programming을 사용한 로깅 예외
- 4. Aspect Oriented Programming을 사용한 레일즈 예외 처리
- 5. Aspect Oriented SQL Server
- 6. Clojure의 Aspect-Oriented Programming
- 7. Aspect Oriented Programming의 대안
- 8. GO! Aspect-Oriented Framework
- 9. Aspect Oriented Programming의 미래
- 10. Aspect-Oriented Programming 약점?
- 11. Aspect Oriented 프로그래밍의 사용
- 12. Aspect Oriented 개발/프로그래밍 리소스
- 13. Ruby의 SystemStackError Aquarium (Aspect Oriented Programming)을 사용한 예외 처리
- 14. AspectJ가없는 Java의 Aspect Oriented Programming?
- 15. Pointcuts 및 Aspect-Oriented Programming
- 16. Aspect Oriented Programming에서 대칭 및 비대칭
- 17. OOP 세계 법규에서의 Aspect-Oriented Programming?
- 18. 처음부터 Aspect Oriented Property/Method 생성하기
- 19. Aspect-Oriented Programming을위한 ANSI C 라이브러리
- 20. Aspect Oriented Programming : PostSharp는 무엇을 사용합니까?
- 21. C에서의 Aspect-Oriented Programming -> 함수 라이브러리?
- 22. Aspect Oriented Programming- 조언은 동일한 스레드에서 실행됩니까?
- 23. C에서의 Aspect 지향 프로그래밍
- 24. 스프링 MVC를 사용한 스프링 변환기에 대한 설명 - 이해할 수 없다.
- 25. 스프링 부트 Aspect Autowiring
- 26. 스프링에서의 번들 비활성화 OSGI
- 27. LLVM을 사용한 Aspect 지향 프로그래밍
- 28. 기본 스프링 응용 프로그램의 @Aspect
- 29. .net의 기능/빌드 성능을위한 최상의 Aspect Oriented Framework
- 30. DBC (계약에 의한 설계)와 AOP (Aspect oriented programming)
간단한 단순한 설명. 일어나는 일을 이해합니다. Aspect와 프록시가 병합되면, 둘 다 조금씩 할 수 있습니까? 어쨌든 나는 당신의 설명을 대답으로 표시하고 있습니다. 나와 마찬가지로 aspect는 실행할 공통 코드가있는 코드 조각입니다. 반면 프록시는 디자인 .. 내가 맞습니까? –
양상은 2 가지 주요한 것들로 구성됩니다.실행되는 코드 인 프록시와 프록시 코드가 적용되는 위치를 알려주는 선언적 표현식. –
완벽하게 완벽합니다. –