moonscode 236

학습 // Spring // MVC // Session

업데이트 :: 2018.08.21 HTTP 세션세션 속성 (@SessionAttributes)세션 스코프 빈HTTP 세션javax.servlet.http.HttpSession세션에서 데이터를 관리하는 법@SessionAttributes(세션속성) 이용스프링 MVC의 org.springframework.ui.Model에 추가한 객체세션 스코프 이용HTTP 세션에 관리하고 싶은 객체를 DI 컨테이너에 세션 스코프 빈으로 등록HttpSession API 이용HttpSession API( setAttribute, getAttribute, removeAttribute )를 직접 사용세션 속성 (@SessionAttributes)@org.springframework.web.bind.annotation.Session..

Spring/MVC 2018.08.21

학습 // Spring // MVC // 구조

업데이트 :: 2018.08.09 프런트 컨트롤러DispaterServletHandlerHandlerMappingHandlerAdapterViewResolverViewDI 컨테이너와 연계ApplicationContext 구성ApplicationContext LifeCycle프런트 컨트롤러스프링 MVC는 프론트 컨트롤러 패턴(Front Controller)의 아키택처를 채택하고 있음클라이언트 요청을 프런트 컨트롤러라는 컴포넌트가 받아 요청 내용에 따라 수행하는 핸들러를 선택하는 아키택처기능클라이언트의 요청 접수요청 데이터를 자바객체로 변환입력값 검사 (Bean Validation)핸들러 호출뷰 선택클라이언트에 요청 결과 응답예외 처리흐름DispatcherServlet 클래스는 클라이언트의 요청을 받음Con..

Spring/MVC 2018.08.21

학습 // Spring // MVC

업데이트 :: 2018.08.09 스프링 MVC웹 애플리케이션 개발특징MVC 특징스프링 MVCModel : 애플리케이션 상태(데이터)나 비즈니스 로직을 제공View : 모델이 보유한 애플리케이션 상태(데이터)를 참조하고 클라이언트에 반환할 응답데이터를 생성Controller : 요청을 받아 모델과 뷰의 호출을 제어, 요청과 응답의 처리흐름을 제어웹 애플리케이션 개발특징POJO(Plain Old Java Objecct) 구현컨트롤러나 모델등의 클래스는 POJO 형태로 구현특정 프레임워크에 종속적일 필요가 없어 단위테스트에 유리애너테이션을 이용한 정의 정보 설정요청 매핑과 같은 각종 정보를 설정파일이 아닌 애너테이션 방식으로 설정비즈니스 로직과 그 로직을 수행하기 위한 각종 정의정보를 자바 파일안에서 함께 ..

Spring/MVC 2018.08.21

학습 // Spring // REST // Exception

업데이트 :: 2018.08.20 REST API 오류응답스프링 MVC 에외 핸들러예외클래스 추가입력값 검사 예외의 처리REST API 오류응답Json 오류 응답{ "message" : "Not Found", "documentation_url" : "http://developer.github.com/v3" } 오류를 담을 자바빈즈public class ApiError implements Serializable { private static final long serialVersionUID = -8119817744873562082L; private String message; @JsonProperty("documentation_url") private String documentationUrl; } 스프링..

Spring/REST 2018.08.20

학습 // Spring // REST // Resource

업데이트 :: 2018.08.20 Resource 클래스JacksonJackson 활용Resource 클래스리소스 클래스 예제public class BookResource implements Serializable { private static final long serialVersionUID = -9115030674240690591L; // == [주의] Json 필드명 == 자바빈즈 프로퍼티명 == private String bookId; private String name; private List authors; @DateTimeFormat(pattern="yyyy-MM-dd") // ISO 8061 private LocalDate publishedDate; private BookPublisher ..

Spring/REST 2018.08.20

학습 // Spring // REST // Controller

업데이트 :: 2018.08.16 @RestControllerCORSCORS 옵션URI조립@RestController@RestController @RequestMapping("books") public class BookRestController() { } CORSCORS : Cross-Origin Resource SharingAJAX(XMLHttpRequest)를 사용할 때 다른 도메인의 서버리소스에 접근하기 위한 메커니즘CORS 옵션allowedOrigins접근을 허용할 오리진(도메인) 지정기본값 : '*' (모두이용가능)allowdMethods접근을 허용할 HTTP 메서드 지정기본값 : '*' (모두이용가능)allowHeaders접근을 허용할 헤더를 지정preflight 요청이 들어올때 이 값으로 ..

Spring/REST 2018.08.20

학습 // Spring // REST

업데이트 :: 2018.08.15 REST API 아키택처ROA(Resource Oriented Architecture)프레임워크 아키텍처REST API 아키택처REpresentational State Transfer클라이언트와 서버사이에 데이터를 주고받는 애플리케이션을 만들기 위한 아키텍처 스타일 중 하나REST API는 데이터베이스 등에서 관리되는 정보에서 클라이어트에게 제공할 정보를 '리소스'의 형태로 추출추출된 리소스에 접근(CRUD 조작)하기 위한 수단으로 REST API를 제공ROA(Resource Oriented Architecture)ROA는 RESTful 웹애플리케이션을 구축하기 위한 구체적인 아키택처를 정의7가지 특징웹 리소스로 공개URI를 통한 식별 (Uniform Resource I..

Spring/REST 2018.08.20