org.springframework.validation.DataBinder 기술적인 관점 : 프로퍼티 값을 타켓 객체에 설정하는 기능 사용자 관점 : 사용자 입력값을 애플리케이션 도메인 모델에 동적으로 변환해 넣어주는 기능 해석하면 : 입력값은 대부분 "문자열"인데, 그 값을 객체가 가지고 있는 프로퍼티 타입 (즉, int, long, boolean, Date 등등 ) 심지어, Event,Book 같은 도메인 타입으로도 변환해서 넣어주는 기능. PropertyEditor 스프링 3.0 이전까지 DataBinder가 변환 작업 사용하던 인터페이스 쓰레드 - 세이프 하지 않음 (상태 정보 저장 하고 있음, 따라서 싱글톤 빈으로 등록해서 사용하다가는...) Object와 String 간의 변환만 할 수 있어,..
Validation은 크게 두가지가 있다. JavaBean 기반 Validation (가장 많이 사용) Spring Validation 인터페이스 구현하여 Validation org.springframework.validation.Validatior 애플리케이션에서 사용하는 객체 검증용 인터페이스 특징 어떤 계층과도 관계가 없다. -> 모든 계층(웹, 서비스, 데이터) 에서 사용해도 좋다. 구현체 중 하나로, JSR-303(Bean Validation 1.0), JSR-349(Bean Validation 1.1) 을 지원한다.(LocalValidatorFactoryBean) DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다. 인터페이스 : org.springframework.validati..
org.springframework.core.io.Resource Resource 추상화란? springframework.core.io.Resource로 java.net.URL라는 클래스를 감싸고, 실제 low level에 있는 Resource에 접근하는 기능 을 추상화라고 한다. 특징 java.net.URL 을 추상화 한 것 스프링 내부에서 많이 사용하는 인터페이스! 추상화 한 이유 클래스패스 기준으로 리소스 읽어오는 기능 부재 ServletContext를 기준으로 상대 경로로 읽어오는 기능 부재 새로운 핸들러를 등록하여 특별한 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하다. 우리가 ApplicationContext를 만들때, var ctx = new ClassPa..
이벤트 프로그래밍에 필요한 인터페이스 제공. 옵저버 패턴 구현체 ApplicationContext extends ApplicationEventPublisher publishEvent(ApplicationEvent event) [event 처리 과정] SpringBootApplication이 구동 -> AppRunner가 실행이 되면서 -> event 발생! -> 발생한 event를 등록되어있는 빈 중에서 MyEvent가 받아서 처리. 이벤트 발생 시키는 방법 - ApplicationEventPublisher.publishEvent(); @Component public class AppRunner implements ApplicationRunner { @Autowired ApplicationContext ..
국제화 (i18n) 기능을 제공하는 인터페이스. ApplicationContext extends MessageSource getMessage(String code, Object[] args, String, default, Locale, loc) ... 스프링 부트를 사용한다면 별다른 설정 필요없이 messages.properties 사용할 수 있음 messages.properties messages_ko_kr.properties ... @Component public class AppRunner implements ApplicationRunner { @Autowired MessageSource messageSource; @Override public void run(ApplicationArguments ..