AOP AOP기능은 주로 일반적인 JAVA API를 이용하는 클래스(POJO)들에 적용한다. Controller에 적용이 불가능한 것은 아니지만, Controller의 경우에는 인터셉터나 필터 등을 주로 이용. 스프링의 AOP는 AspectJ라는 라이브러리의 도움을 받기 때문에, 스프링 버전에 맞게 AspectJ버전을 변경. 5.0.7.RELEASE 1.9.0 1.7.25 AOP설정과 관련해서 사용하는 라이브러리인, AspectJ Weaver 를 추가 org.aspectj aspectjweaver ${org.aspectj-version} 스프링 프로젝트에 AOP를 설정하는것은, 스프링 2.x버전 이후에는 자동으로 proxy 객체를 만들어주는 설정을 추가(root-context.xml 의 Namespace..
AOP 용어 정리 1.Target 부가기능을 부여할 대상.(핵심기능을 담당하는 Service들 ) 2.Aspect 부가기능 모듈을 Aspect라고 부름(핵심기능에 부가되어 의미를 갖는 모듈) 부가될 기능을 정의한 Advice와, Advice를 어디에 적용할지를 결정하는 Pointcut을 함께 갖고있음. 어플리케이션의 핵심적인 기능에서, 부가적인 기능을 분리해서 Aspect라는 모듈로 만들어서 설계하고 개발하는 방법 3.Advice 실질적으로 부가기능을 담은 구현체. 타겟 오브젝트에 종속되지 않기 때문에, 부가기능에만 집중할 수 있음. Aspect가 무엇을 언제 할 지를 정의 4.PointCut 부가기능이 적용될 대상(method)을 선정하는 방법 Advice를 적용할 JoinPoint를 선별하는 기능을 ..
REST API 사용 하나의 URI는 하나의 고유한 Resource를 대표하도록 설계된다는 개념에, 전송방식을 결합해서 원하는 작업을 지정. @RequestMapping, @ResponseBody 와 같이 REST방식의 데이터 처리를 위한 여러 어노테이션이 있음. @RestController Controller가 REST방식을 처리하기위한 것임을 명시 @ResponseBody 일반적인 JSP와 같은 뷰로 전달되는게 아닌, 데이터 자체를 전달하기 위한 용도로 쓰임 @PathVariable URL 경로에 있는 값을 파라미터로 추출하기 위해 사용 @CrossOrigin Ajax의 크로스도메인 문제를 해결하기 위해 사용 @RequestBody JSON 데이터를 원하는타입으로 바인딩