AOP는 aspect-oriented programming의 약자로 관점 지향 프로그래밍을 뜻한다. 즉, JAVA 코드를 바꾸지 않고 밖에서 지켜보겠다는 의미를 가지는 기법을 얘기한다.
하나의 예로 들자면 사용자가 어떤 행동을 하는지 궁금할때 사용자의 로그를 확인 하고 싶어질 것이다. 이렇게 된다면 JAVA코드안에서 사용자의 로그를 확인하는 출력을 하나씩 다 넣어 줘야한다. 이런 것을 간단히, 또한 어떤 클래스에만 적용시키고 싶을 때 이 AOP 기법을 쓴다.
사용하는 방법은 밑에서 알아보고 AOP에 대한 정의에 대해 조금 알아보자.
스프링에서 AOP를 구현하는 방식에는 XML을 이요한 구현과 @Aspect 어노테이션 기반의 구현이 있다.
AOP와 관련해서 용어가 몇가지 있는데 aspect , advice , jointpoint , pointcut , weaving에 대해 조금씩 알면 되겠다. 자세한 건 실습을 하면서 익히면 더욱 쉽다.
1.Spring의 pom.xml 파일에서 의존 설정을 한다. 의존 설정을 하고 저장을 하면 관련 configuration file들을 자동으로 다운받게 된다.
2. 공통 기능 클래스를 만든다. 공통 기능이라고 하면 로그찍기, 시간재기 등이 있겠다.
3. XML 파일 설정을 한다. xml 파일의 namespaces에 들어가 aop를 체크하면 자동으로 schema를 포함하는 코드가 생성된다. 여기서 bean을 설정하고, aspect에서 logAop(공통 기능 클래스)를 참조하고 pointcut에서 어떤 패키지에 있는 메소드들을 공통 기능을 적용시킬 것인지 설정, around에서 사용할 공통 기능 메소드를 설정하면 끝이 난다.
이것으로 XML을 이용한 AOP 구현이 끝났고 어노테이션을 이용한 AOP 구현에 대해서 알아보겠다.
=========================================================================================================================
어노테이션을 이용한 AOP 구현은 XML을 이용한 AOP 구현에 보다는 최근에 나온 방법이고 더 쉽게 사용가능하다.
'프로그래밍 > Spring Framework' 카테고리의 다른 글
자바 Spring Framework 한글 적용 (0) | 2018.08.06 |
---|---|
자바 Spring framework MVC 모델 (0) | 2018.08.06 |
Spring Environment 객체 (0) | 2018.08.02 |
스프링 생명 주기와 범위 (0) | 2018.08.01 |
스프링을 이용한 객체 생성과 조립(DI 설정) (0) | 2018.08.01 |