🍃 Spring, Spring Boot/스프링 프레임워크 기초

    [Java / Spring] 0. 메이븐 프로젝트 생성시 pom.xml 오류 해결

    Spring MVC에 대해 배우기 위해 메이븐 프로젝트를 생성하는 과정을 진행하였는데 pom.xml 첫 번째 줄에서 오류가 발생하였음. 오류 내용은 대충 이러함. could not initialize class org.apache.maven.plugin.war.util.webappstructureserializer 구글링 결과 다음 방법으로 해결할 수 있었음. 아래의 코드를 pom.xml 파일에 그대로 복붙함. maven-war-plugin 3.3.2 끝.

    [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 시간이 걸렸습니다.";// 개발자 및 운영자 ..