본문 바로가기

728x90
반응형

개발

스프링 REST API - @RequestBody & @ResponseBody @RequestBody @RequestBody 를 사용하면 브라우저에서 전달되는 JSON 데이터를 객체로 자동 변환해 줍니다. ... @RestController @RequestMapping("/test/*") public class TestController { static Logger logger = LoggerFactory.getLogger(TestController.class); @RequestMapping(value = "/info", method = RequestMethod.POST) // JSON 으로 전송된 데이터를 MemberVO 객체의 속성에 자동으로 설정 public void modify(@RequestBody MemberVO vo) { logger.info(vo.toString()).. 더보기
스프링 REST API - @PathVariable @PathVariable 이란? REST API 에서 URI 에 변수가 들어가는 것을 볼 수 있습니다. @PathVariable 을 사용하면 브라우저에서 요청 URL 로 전달된 매개변수를 가져올 수 있습니다. ex) http://bookclub.yes24.com/BookClub/Detail/106494677 위의 굵은 글씨로 되어 있는 부분을 @PathVariable 로 처리해줄 수 있습니다. ... @RestController @RequestMapping("/test/*") public class TestController { static Logger logger = LoggerFactory.getLogger(TestController.class); // 브라우저에서 요청 시 {num} 부분의 값이 @.. 더보기
스프링 REST API - @RestController REST 란? 모바일 기기는 네트워크 전송량이 유선 기기보다 떨어지므로 PC 에서 동작하는 것과는 달리 화면은 그대로 유지하면서 필요한 데이터만 전송 받아 빠르게 결과를 표시합니다.(Ajax 를 이용하는 것이 대표적인 경우) 스프링에서도 모바일 기기와 연동하는 경우가 많아지면서 데이터만 전송하는 기능을 지원하게 되었고 그 결과 REST 라는 방식이 그 대안으로 등장하여 사용되고 있습니다. REST 란 representational State Transfer 의 약자로, 하나의 URI 가 고유한 리소스를 처리하는 공통 방식입니다. REST 방식으로 제공되는 API 를 REST API(RESTful API)라고 하며 이는 트위터와 같은 Open API 에서 많이 사용하고 있습니다. @RestControlle.. 더보기
스프링 인터셉터(Interceptor) 인터셉터 인터셉터(Interceptor)는 필터와 비슷한 기능을 하지만 필터는 웹 애플리케이션의 특정한 위치에서만 동작하는 데 반해 인터셉터는 좀 더 자유롭게 위치를 변경해서 기능을 수행할 수 있습니다. 즉 인터셉터는 애플리케이션 안에서 적용 범위를 설정할 수 잇습니다. 인터셉터를 사용하면 브라우저 요청이 있을 때 요청 메서드 호출 전후에 원하는 기능을 수행할 수 있습니다. 주로 쿠키(cookie) 제어, 파일 업로드 등의 작업에 사용합니다. [ 스프링 HandlerInterceptor 여러가지 메서드 ] 메서드 기능 preHandle() 컨트롤러 실행 전 호출됩니다. postHandle() 컨트롤러 실행 후 DispatcherServlet 이 View 로 보내기 전에 호출됩니다. afterComplet.. 더보기
메이븐(Maven) 구성요소 메이븐 메이븐은 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴입니다. 메이븐을 사용하면 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있습니다. 메이븐은 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리합니다. 메이븐을 사용하면 컴파일과 동시에 빌드를 수행할 수 있을 뿐만 아니라 관련된 라이브러리도 일관성 있게 관리할 수 있어 편리합니다. [ 메이븐 웹 프로젝트 기본 디렉터리 구조 ] [ 메이븐 프로젝트 구성요소 ] 구성요소 설명 src/main/java 자바 소스 파일이 위치합니다. src/main/resources 프로퍼티 파일이나 XML 설정파일 등 리소스 파.. 더보기
스프링 @Autowired @Autowrired 스프링에서는 @Autowired 를 이용해서 개발자가 만든 클래스들의 빈을 직접 자바 코드에서 생성하여 사용합니다. @Autowired 특징 - 기존 XML 파일에서 각각의 빈을 DI 로 주입했던 기능을 코드에서 애너테이션으로 자동으로 수행합니다. - @autowired 를 사용하면 별도의 setter 나 생성자 없이 속성에 빈을 주입할 수 있습니다. [ Controller ] ... // @Controller 를 이용해 Controller 빈을 자동 생성 @Controller("memberController") public class MemberControllerImpl implements MemberController { // @Autowired 를 이용해 Service 빈을 자.. 더보기
스프링 애너테이션(Annotation) 애너테이션 스프링 3.0 부터는 DI 같은 자바 코드와 관련된 설정은 직접 코드에서 할 수 있게 애너테이션(Annotation) 이라는 기능을 제공합니다. 스프링에서 애너테이션을 사용하려면 스프링에서 제공하는 애너테이션 관련 클래스를 XML 설정 파일에서 빈으로 설정해야 합니다. 클래스 기능 DefaultAnnotationHandlerMapping 클래스 레벨에서 @RequestMapping 을 처리합니다. AnnotationMethodHandlerAdapter 메서드 레벨에서 @RequestMapping 을 처리합니다. 태그를 사용해 패키지 이름을 지정하면 애플리케이션 실행 시 해당 패키지에서 애너테이션으로 지정된 클래스를 빈으로 만들어 줍니다. 애너테이션 기능 @Controller 지정한 클래스를 컨.. 더보기
스프링 트랜잭션(Transaction) 트랜잭션 트랜잭션(Transaction)은 여러 개의 DML 명령문을 하나의 논리적인 작업 단위로 묵어서 관리하는 것으로, All 또는 Nothing 방식으로 작업 단위가 처리됩니다. SQL 명령문들이 모두 정상적으로 처리되었다면 모든 작업의 결과를 데이터베이스에 영구 반영(commit) 하지만 그중에 하나라도 잘못된 것이 있으면 모두 취소(rollback) 합니다. 스프링은 트랜잭션 기능을 마이바티스 기능과 연동해서 사용합니다. 트랜잭션 기능은 XML 파일에서 설정하는 방법과 애너테이션을 이용하는 방법이 있습니다. XML 로 설정하는 방법은 설정 파일이 복잡해지면 불편하므로 현재는 애너테이션으로 트랜잭션을 적용하는 방법을 더 선호합니다. [ 트랜잭션 속성 ] 속성 기능 propagaion 트랜잭션 전파.. 더보기