AOP 3

Spring AOP를 이용하여 Service클래스에 로그 출력하기

Spring MVC 프로젝트에서 Service에 Aop Advice를 걸어서 log4j 로그를 출력하는 것을 합니다. xml설정이 아닌 어노테이션을 이용했습니다. 특정 패키지의 모든 service 클래스가 동작할때 파라미터등 기타 정보를 출력하는 로그와 메소드가 동작하면서 걸린 시간을 로그하는 예제이다. AOP 기초 설정하기 1.pom.xml에 라이브러리 추가. 일단 properties에 aspect 공통 버전을 설정한다. 그리고 spring aop, aspectj 라이브러리를 추가한다. AspectJ는 자바용 AOP 지원을 제공할 목적으로 시작된 라이브러리다. 2.root-context.xml 설정하기. 그리고 root-context.xml파일에 아래 내용을 추가하자. 3.Advice 클래스 생성하기...

Programming/Spring 2020.08.04

Spring AOP - @Aspect 구현

이번에 @Aspect를 이용한 AOP를 설정 aopEx2/src/main/java/com/aopEx2/LogAop.java @Pointcut을 사용하지 않아도 됩니다. @Before 어노테이션을 보면 속성에 바로 범위를 지정했습니다. 같은 방법으로 @Around에 속성을 지정해도 되고, Pointcut을 지정해주는 메서드를 생성해도 됩니다. 이전에 xml 파일에서 설정했던 것과 다르게 JAVA 파일에서 어노테이션을 이용해서 설정을 했지만, xml 파일에서 추가해야 될 것이 있습니다. aopEx2/src/main/resources/applicationCtx.xml 를 명시하면 @Aspect 어노테이션이 있는 클래스를 찾아서 자동으로 aspect로 만든다. 그 아래에는 bean 객체를 생성했고, 이전에 사용..

Programming/Spring 2018.06.16

Spring AOP - XML 기반으로 구현

- AOP(Aspect Orieted Programming) : 관점 지향 프로그래밍 프로그래밍을 하다보면 공통적인 기능이 많이 발생합니다. 이러한 공통 기능은 상속을 통해서 모든 모듈에 적용을 할 수 있지만 몇 가지 문제가 있습니다. 먼저 Java에서는 다중 상속이 가능하지 않기 때문에 한계가 있으며, 기능을 구현하는 부분에 핵심 기능 코드와 공통 기능 코드가 섞여 있어서 효율이 떨어지게 됩니다. 이러한 문제점 때문에 핵심 기능과 공통 기능을 분리하며, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식의 AOP가 등장을 하게 되었습니다. - AOP 관련 용어 * Aspect : 공통 기능 * Advice : Aspect의 기능 자체 Aspect를 공통 기능이라 크게 묶었으면 Advice는 그 안의..

Programming/Spring 2018.06.13