🍃 Spring, Spring Boot

    [Java / Spring] 9. Point Cut(Weaving, Join Point)

    Spring AOP (개념, 용어, 원리, 포인트컷 표현식, JoinPoint API) 1. AOP란? Aspect Oriented Programming 의 약자로 관점지향 프로그래밍이라고 부른다. IoC가 낮은 결합도와 관련된 것이라면 AOP 는 높은 응집도와 관련되어 있다. 서비스들의 비즈니스 메소드들은 복잡한 sjh836.tistory.com 클라이언트가 호출하는 모든 비즈니스 메소드를 조인 포인트(Join Point)라고 하는데, 이전 시간에서 했던 것처럼 AOP를 구현하게 되면 이러한 모든 조인 포인트에 대해서 AOP가 수행될 것이다. 따라서 이를 막기 위해 사용되는 것이 포인트 컷(Point Cut)이다. 포인트 컷이란 특정 조건에 의해 필터링된 조인 포인트로, 수많은 조인포인트 중에 특정 메..

    [Java / Spring] 8. 스프링으로 AOP 구현해보기

    이번 시간에는 지난 시간에 자바 코드로 구현했던 AOP를 스프링을 통해 구현해보려 한다. 스프링에서는 AOP의 형태를 총 4가지로 구분하는데, Before, After Returning, After Throwing, Around가 있다. Before는 부가적인 업무가 주 업무의 앞에서만 실행되는 경우이고, After Returning은 부가적인 업무가 주 업무의 뒤에서만 실행되는 경우이다. After Throwing은 부가적인 업무가 예외처리를 담당하고 있는 경우이고, Around는 부가적인 업무가 주 업무의 앞, 뒤에서 실행되는 경우이다. 먼저 Around Advice를 구현해보자. 우선 이전에 작성하였던 xml 파일을 복사하여 가져온 뒤, 아래와 같이 수정해주었다. ... logAroundAdvice..

    [Java / Spring] 7. 순수 자바로 AOP 구현해보기

    기존에는 개발자 또는 운영자에게 필요한 기능을 사용자를 위해 작성한 자바 코드에 직접 삽입하여 사용하곤 했다. public int total() { long start = System.currentTimeMillis(); int result = kor + eng + math + com;// 사용자 코드 부분(주 업무) try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } long end = System.currentTimeMillis(); String message = (end - start) + "ms 시간이 걸렸습니다.";// 개발자 및 운영자 ..

    [Java / Spring] 6. XML Configuration을 Java Configuration으로 변경하기

    이번 시간에는 지금까지 XML 파일을 통해 작성했던 것을 Java 파일을 통해 작성하도록 변경하고자 한다. 이를 위해서는 별도의 자바 클래스가 필요하며 해당 파일이 일반적인 자바 클래스가 아니라 설정을 위한 클래스임을 표시하기 위해서 @Configuration 이라는 어노테이션을 붙여준다. 이렇게 하면 해당 클래스 안에서 XML 파일에서 설정했던 내용을 어노테이션으로 추가할 수 있게 된다. 따라서 다음과 같이 새로운 클래스를 만든 뒤, 코드를 작성해주었다. @ComponentScan("spring.di.ui") @Configuration public class NewlecDIConfig { @Bean public Exam exam() { return new NewlecExam(); } } 위의 구문은 기..