Spring AOP

A collection of 21 posts

AspectJ

AspectJ와의 연동을 고려한다면, 포인트컷을 최소화 해야합니다.

무슨 이야기냐면, 최소 권한 원칙인가… 그런거랑 비슷한겁니다. 바로 예제를 보면서 살펴보죠. @Aspect public class HibernateExceptionToDataAccessException {     @Pointcut(“@within(org.springframework.stereotype.Repository)”)     public void accountHibernateExceptionInDao(){}     @AfterThrowing(pointcut=”accountHibernateExceptionInDao()”, throwing=”e”)    

AspectJ

AspectJ로 final method에도 위빙하기

소스 코드는 이전과 동일합니다. 그 상태에서 프록젝트에 AspectJ Nature를 추가해줍니다. 그런 다음에 프로젝트 클린을 하여 기존의 클래스파일을 비우고 다시 컴파일하게 합니다.(Alt + P, N, 엔터) 지금, 저는 아무런 .aj 파일도 만들지 않았습니다. 그냥 이전에 만들어둔 Spring @AOP를 사용하고 있을 뿐입니다. @Aspectpublic class FinalHelloAspect {  

유즈케이스

Spring AOP 어디다 쓰면 좋을까?

어드바이스 종류 별로 생각해 보는게 좋을 듯 합니다. 어드바이스 특징이나 기타 자세한 설명은 생략하겠습니다. 제 블로그 어딘가에 다 있을 겁니다.ㅋ 1. Before 어드바이스– 보안에 쓰면 좋겠다. 해당 메소드 실행 전에 인증과 권한을 체크해서, 없으면 예외를 던지도록 할 수 있겠다.– 로깅은 어떨까.

Spring AOP

[Spring Masters] 스프링 AOP 학습 참가 시험 문제 공개

Spring AOP 학습 이전에 필수로 알고 있어야 할 스프링 지식들을 확인하는 시험입니다. 24시간 안에 답을 적어서 저에게 메일로 제출해주세요. 1.    FactoryBean에 대해서 설명하세요.2.    FactoryBean에서 getObject()가 돌려주는 객체 말고, FacotryBean 자체를 받아오려면 어떻게 해야 하나요?3.    BeanFactory와

Aspect 만들기

HibernateExceptionToDataAccessExceptionApsect 구상 중

어제랑 오늘은 회사 이사를 하느라고 공부를 제대로 못하겠네요. 아 삭신이.. 쑤시네요. ㅠ.ㅠ 살이 조금이라도 빠지기를 바라며.. 각설하고 본론으로 들어갑니다. 스프링에서 Hibernate를 사용해서 DAO를 구현하는 방법은 세 가지가 있습니다. 각각은 다음과 같은 특징이 있습니다. HibernateTemplate JDBC Template과 비슷한 방식이다. 기존 스프링 사용자들에게 가장 익숙한

AspectJ

Aspect-Oriented Programming with Spring AOP and AspectJ

Interface 21의 아드리안이 발표한 PPT인것 같습니다. 구글에서 “spring aop aspectj”로 검색했더니 나왔습니다. 굉장히 멋진 발표였을 것 같은데 중간 중간 데모를 못보는 것이 너무 아쉽습니다. Spring AOP에서 AsepctJ와 연동하는 부분이 막혀서 구글링을 하던 중이였는데 AspectJ의 aj 파일을 컴파일 해서 class 파일로 만들어야

AspectJ

6.2. @AspectJ support

@AspectJ 는 Java 5에 추가된 어노테이션을 사용하여 aspect를 정의하는 스타일을 말하며 이것은 AspectJ 라이브러리를 사용하여 AspectJ 5와 동일한 방법으로 aspect와 pointcut을 정의할 수 있습니다. 하지만 Spring AOP를 사용하여 실행하기 때문에 AspectJ의 weaver나 complier는 사용하지 않아도 됩니다. 그것들을 사용하면 AspectJ의 모든 기능을 사용할 수 있습니다.

AutoProxying

Autoproxy

이전에 잠시 ProxyFactoryBean을 사용하여 일일히 Proxy 객체를 만드는 것이 얼마나 피곤할 수 있는지 언급을 했었습니다. aspect가 적용 될 부분이 객체 단위로 나눠 진다면 저렇게 하는게 편할 수도 있겠지만 그냥 타겟 객체를 멤버로 가지고 타겟 객체의 인터페이스를 구현하면서 타겟 객체의 메소드를 활욜하여 원하는 대로 구현하면

dynamc pointcut

Spring AOP(old) Pointcut Implementation

이전에 살펴 봤듯이 포인트컷에는 두 가지 종류가 있습니다. 정적 포인트컷– 직접 만들고 싶다면 StaticMethodMatcherPointcut 클래스를 상속하여 isMatch 메소드를 구현.– NameMatchMethodPointcut :: NameMatchMethodPointcutAdvisor가 이에 상응하는 Advisor입니다. 클래스 이름에서 알 수 있듯이 메소드 이름으로 해당 포인트컷을 지정합니다. 위 두개의 setter를 사용하여 값을 configuration metadata 상에서

pointcut

Spring AOP(old) Pointcut

참조 : Reference 7.2, Spring In ActionConcept  advice가 어떤 타입이든 상관없이 같은 포인트컷에 여러 adivce를 적용할 수 있습니다. public interface Pointcut {    ClassFilter getClassFilter();    MethodMatcher getMethodMatcher();} 핵심이 되는 포인트컷 인터페이스로 클래스와 메소드로 포인트컷을 판단하게 되기 때문에 저렇게 나뉘어져 있습니다. 클래스

Advice 유형

Spring AOP(old) Advice

참조 : SIA 3장 Spring이 제공하는 Advice 종류와 특징1. arond advice :: MethodInterceptor :: 대상 메소드에 대한 호출을 가로챔2. before advice :: BeforeAdvice :: 대상 메소드가 실행되기 전에 호출됨3. after advice :: AfterReturningAdvice :: 대상 메소드가 리턴한 후에 호출됨4. throws advice :: ThrowsAdvice :: 대상 메소드가 예외를 던질 때 호출됨 2.0 부터는

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.