분류 전체보기339 섹션14. 스프링 AOP - 실무 주의사항 - 내부호출 주의사항 this.method() 호출을 할 경우 프록시를 통해 호출되지 않는다. 자기 자신을 의존성 주입한 다음 본인.method()통해서 프록시를 통하여 외부메소드를 호출하도록 한다. 2025. 8. 20. 섹션 12. 스프링 AOP - 포인트컷 AspectJ는 포인트컷을 편리하게 표현하기 위해 특별한 표현식을 제공한다이때 사용되는 포인트컷 지시자 종류는 다음과 같다.executionwithinargsthistarget@target@within@annotation@argsbean execution 이 가장 중심적으로 사용된다. 따라서 해당 포인트컷을 중심으로 이해하는 것이 중요하다. 2025. 8. 19. 섹션 10. 스프링 AOP개념 aop의 필요성 -> 핵심기능과 부가기능의 분리 필요부가기능과 부가기능을 어디에 적용할지 선택하는 기능-> @AspectAOP는 OOP의 부족한 부분(횡당 관심사의 처리)를 위해 개발된 기능. AspectJ 스프링도 AOP를 지원하지만 대부분 AspectJ 문법을 차용하고, AspectJ가 제공하는 기능의 일부만 제공한다. AOP적용방식- 컴파일 시점- 클래스 로딩 시점- 런타임 시점 - 컴파일 타임 (위빙)컴파일 .class 를 만들때 AspectJ를 사용하여 코드 자체를 반영하여 AOP를 적용하게 된다. - 클래스 로딩시점 (위빙)JVM 클래스 로더에 올리기 전에 .class파일을 조작하여 JVM에 올려준다.(AspectJ 직접사용) 참고로 많은 모니터링 툴들이 이 방식을 사용한다. * 위빙은 특별.. 2025. 8. 18. 섹션9. Aspect AOP @Aspect 어노테이션을 통해서 자동 프록시 생성기가 스프링 빈으로 등록된 어드바이저들을 찾고 빈들에 자동으로 프록시를 적용해준다. 프록시 생성기 작동 과정1. 생성 : 스프링 빈 대상이 되는 객체를 생성2. 전달 : 생성된 객체를 빈 저장소에 등록하기 직전에 빈 후처리기에 전달한다.3-1 Advisor 빈 조회 : 스프링 컨테이너에서 Advisor빈을 모두 조회한다.3-2 @Aspect Advisor 조회 : @Aspect 어드바이저 빌더 내부에 저장된 Advisor를 모두 조회한다.4. 프록시 적용 대상 체크 : 앞서 3-1, 3-2에서 조회한 Advisor에 포함되어 있는 포인트컷을 사용해서 해당 객체가 프록시를 적용할 대상인지 아닌지 판단한다. 이 때 객체의 클래스 정보는 물론이고, 해당 객.. 2025. 8. 18. 섹션 8. 빈 후처리기 스프링 빈 등록과정중 빈 후처리기에서 빈A대신 빈B를 등록하게 할 경우 스프링 빈 저장소에는 B가 저장되게 된다.-> 이 방식을 사용하여 빈 객체를 프록시로 교체하는 것도 가능하다.* 하나의 프록시에 여러개의 어드바이저가 등록된다. 2025. 8. 14. 섹션4. 템플릿 메서드 패션과 콜백 패턴 중복된 코드들을 동일하게 작성하는 문제를 해결하기 위해 두가지 디자인 패턴을 활용한다. - 템플릿 메서드 패턴템플릿 메서드 패 턴은 부모 클래스에 변하지 않는 템플릿 코드를 둔다. 그리고 변하는 부분은 자식 클래스에 두고 상속과 오버라이딩을 사용해서 처리한다.템플릿 메서드 패턴은 이렇게 다형성을 사용해서 변하는 부분과 변하지 않는 부분을 분리하는 방법이다 - 콜백 패턴전략 패턴은 변하지 않는 부분을 Context 라는 곳에 두고, 변하는 부분을 Strategy 라는 인터페이스를 만들고 해당 인터페이스를 구현하도록 해서 문제를 해결한다. 상속이 아니라 위임으로 문제를 해결하는 것이다. 전략 패턴에서 Context 는 변하지 않는 템플릿 역할을 하고, Strategy 는 변하는 알고리즘 역할을 한다. - 템.. 2025. 8. 13. 이전 1 2 3 4 ··· 57 다음