전체 글 썸네일형 리스트형 데이터 바인딩 추상화 Converter와 Formatter 1. Converter - S 타입을 T 타입으로 변환할 수 있는 매우 일반적인 변환기. - 상태 정보 없다 / stateless / 스레프 세이프하다 >> 빈으로 등록하여 사용가능 - 빈으로 등록할 때는 ConverterRegister에 등록해서 사용한다. - Converter 소스 package com.bpkim.demospring51; import org.springframework.core.convert.converter.Converter; public class EventConverter { public static class StringToEventConverter implements Converter{ @Override public Event convert(String s) { return .. 더보기 데이터 바인딩 추상화: PropertyEditor org.springframework.validation.DataBinder 데이터 바인딩이란? - 프로퍼티 값을 타겟 객체에 설정하는 기능 - 사용자가 입력한 값을 application domain 객체에 동적으로 할당하는 기능 사용자가 입력한 값은 보통 문자열 객체가 가지고있는 값의 타입은 다양한 스트링, int, 객체 자체 등등 각각에 맞게 변환하여 바인딩 해주는 것. PropertyEditor - 스프링 3.0 이전까지 DataBinder 가 변환 작업 사용하던 인터페이스 - ApplicationContext를 xml 파일로 설정할때, xml 파일에 입력한 문자열을 빈이 가지고 있는 적절한 타입으로 변환하여 넣어줄때 사용되었음. - 쓰레드 세이프 하지 않다. (상태 정보 저장 하고 있다. 따라서 싱.. 더보기 Validation 추상화 Validation - 애플리케이션에서 사용하는 객체 검증용 인터페이스 특징 - 어떤 계층과도 관계 없다 > 모든 계층(웹, 서비스, 데이터) 에서 사용해도 좋다. - 구현체 중 하나로 .JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다(LocalValidatorFactoryBean) - DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다. 인터페이스 - booleean supports(Class clazz) : 어떤 타입의 객체를 검증할 때 사용할 것인지 결정함 - void validate(Object obj, Errors e) : 실제 검증 로직을 이 안에서 구현 구현할때 ValidationUtils 사용하며 편리함. 1... 더보기 Resource 추상화 Resource 추상화 특징 - java.net.URL 을 추상화 한 것. - 스프링 내부에서 많이 사용하는 인터페이스 java.net.URL을 왜 추상화 했을까?? - java.net.URL 는 classpath 기준으로 가져오는 것이 없었다. - ServletContext를 기준으로 상대 경로를 읽어오는 기능이 부족 - 새로운 핸들러를 등록하여 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하다! 이러한 이유로 Resource를 만들었다. 구현체 - UriResource : java.net.URL 참고, 기본으로 지원하는 프로토콜 http, https, ftp, file, jar - ClassPathResource : 지원하는 접두어 classpath - FileSys.. 더보기 Ioc 컨테이너 - ResourceLoader ResourceLoader - 리소스를 읽어오는 기능을 제공하는 인터페이스 리소스 로더의 역할을 한다. ApplicationContext extends ResourceLoader >> ApplicationContext 를 받아서 사용할 수 도 있고, ResourceLoader을 받아서 할 수 도있다. 명확하게 ResourceLoader 을 받아서 하는 것을 추천한다. 1. ResourceLoader을 이용해 리소스 파일 읽어오기 1) 클래스패스로 읽어오기 - 리소스 파일 생성 - 소스 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.bo.. 더보기 IoC - ApplicationEventPublisher ApplicationEventPublisher - ApplicationEventPublisher는 Spring의 ApplicationContext가 상속하는 인터페이스 중 하나. - 스프링 이벤트 프로그래밍에 필요한 인터페이스 - 옵저버 패턴 구현체 1. ApplicationEvent 상속받은 Event 선언 package com.bpkim.demospring51; import org.springframework.context.ApplicationEvent; public class MyEvent extends ApplicationEvent { private int data; public MyEvent(Object source) { super(source); } public MyEvent(Object so.. 더보기 IoC - MessageSource ApplicationContext 에서 상속하는 MessageSource 인터페이스를 이용! 국제화(i18n) 기능을 제공하는 인터페이스 1. 메시지 소스 파일 생성 - 리소스 아래에 messages.properties / messages_ko_KR.properties 파일 생성 스프링 부트를 사용하면 Resource Bundle 이 빈으로 등록 되어 별다른 설정 없이 messages.priperties 파일을 사용 가능하다. - message.properties 파일 내용 2. 메시지 호출 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframewor.. 더보기 IoC - Environment - 프로퍼티 키 벨류 상으로 되어 있는 프로퍼티에 접근 하여 사용 계층 형 으로 제공됨. OS의 환경 변수, 자바 실행시 옵션 값 등에 전달된 키 벨류 값을 이용. 1. VM 옵션 package com.bpkim.demospring51; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.context.ApplicationContext; import org.springframework.core.env.Environment; .. 더보기 이전 1 ··· 21 22 23 24 25 26 27 ··· 36 다음