java 69

학습 // 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

학습 // Spring // WEB // View

업데이트 :: 2018.08.15 뷰 선택템플릿 기반 뷰ViewResolver 빈정의뷰 선택뷰는 Model에 저장된 자바객체를 참조 클라이언트에 반환할 응답데이터를 만드는 컴포넌트org.springframework.web.servlet.View (인터페이스)org.springframework.web.servlet.ViewResolver (구현클래스)템플릿 기반 뷰템블릿 기반 View 클래스InternalResourceViewJSPJstlViewJSP + JSTLTilesViewApache Tiles (레이아웃엔진)JSP (템플릿엔진)FreeMarkerViewFreeMarkerGroovyMarkupViewGroovy Markup Template EngineScriptTemplateViewJSR 223 sc..

Spring/WEB 2018.08.20

학습 // Spring // WEB // 화면이동

업데이트 :: 2018.08.15 화면이동이동대상지정리다이렉트요청파라미터지정경로변수지정요청경로로 포워드뷰와의 데이터 연계리다이렉트와 데이터연계화면이동이동대상지정핸들러의 메서드 뷰이름( 이동대상에 할당된 논리적 이름 )을 반환하도록 만듬뷰 이름을 반환하면 스프링 MVC가 ViewResolver를 통해 뷰 이름과 연결@Controller public class WelcomeControlller { @RequestMapping("/") public String home() { return "home"; } } 핸들러 메서드의 반환값으로 뷰 이름을 반환리다이렉트@Controller public class WelcomeController { @RequestMapping("/") public String home(..

Spring/WEB 2018.08.20

학습 // Spring // WEB // Validation

업데이트 :: 2018.08.10 입력값검사입력값검사 활성화입력값검사와 결과의판정미입력처리입력값검사 규칙지정중첩된 자바빈즈의 입력값 검사입력값검사 규칙추가입력값검사규칙을 교체하는 방법오류정보표시오류메시지의 재정의Bean Validation 커스터마이징Spring Validator 이용입력값검사입력값검사 활성화@Validated@javax.validation.Valid@ReqestMapping(method=RequestMethod.GET) public String search( @Validated AccountSearchForm form, BindingResult result, Model model ) BindingResult에는 요청 데이터의 바인딩 오류와 입력값 검사 오류 정보가 저장입력값검사와 결과의..

Spring/WEB 2018.08.20

학습 // Spring // WEB // Form DataBinding Class

업데이트 :: 2018.08.10 Form Class폼 객체의 스코프폼클래스 작성HTML 포맷과 바인딩간단한타입과 바인딩간단한타입과 컬렉션과의 바인딩중첩된 자바빈즈와의 바인딩자바빈즈의 컬렉션과 바인딩프로퍼티 값의 설정해제Form ClassHTML 폼의 입력 필드 구조를 자바빈즈로 표현한 클래스스프링 MVC는 폼객체를 통해 다음 값을 서버와 클라이언트 사이에서 연계(바인딩)하는 구조폼 객체의 스코프요청 스코프 (Request Scopes)요청에서 객체를 공유하기 위한 스코프(기본값)객체를 요청 스코프로 취급하는 경우 특별한 구현은 필요 없음단순히 Model객체를 저장만 하면 요청 스코프의 객체로 취급플래시 스코프 (Flash Scope)PRG(Post/RedirectGet)패턴의 요청사이에서 객체를 공유하..

Spring/WEB 2018.08.20