전체 글

전체 글

    [Spring] Validation

    Validation 추상화 어플리케이션에서 사용하는 객체 검증용 인터페이스 특징 어떠한 계층과도 관계가 없다. 모든 계층(웹, 서비스, 데이터)에서 사용해도 좋다. 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다. (LocalValidatorFactoryBean) DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다. 인터페이스 boolean supports(Class clazz) 어떤 타입의 객체를 검증할 때 사용할 것인지 결정한다. void validate(Object obj, Errors e) 실제 검증 로직을 이 안에서 구현 구현할 때 ValidationUtils 사용하면 편리하다. 스프링 부트 2...

    [Spring] ResourceLoader 와 Resource

    ResourceLoader 리소스를 읽어오는 기능을 제공하는 인터페이스 ApplicationContext extends ResourceLoader 리소스 읽어오기 파일 시스템에서 읽어오기 클래스패스에서 읽어오기 URL로 읽어오기 상대, 절대 경로로 읽어오기 Resource 추상화 java.net.URL을 추상화 한 것 스프링 내부에서 많이 사용하는 인터페이스 추상화를 한 이유 클래스패스 기준으로 리소스를 읽어오는 기능의 부재 ServletContext를 기준으로 상대 경로로 읽어오는 기능의 부재 새로운 핸들러를 등록하여 특별한 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하다. 주요 메소드 getInputStream() exitst() isOpen() getDescrip..

    [Spring] AppliacationEventPublisher

    ApplicationEventPublisher 이벤트 프로그래밍에 필요한 인터페이스 제공 옵저버 패턴 구현체 ApplicationContext extends ApplicationEventPublisher publishEvent(ApplicationEvent event) 이벤트 만들기 ApplicationEvent 상승 스프링4.2 부터는 이 클래스를 상속받지 않아도 이벤트로 사용할 수 있다. 이벤트 발생 시키는 방법 ApplicationEventPublisher.publishEvenr(); 이벤트 처리하는 방법 ApplicationListener를 구현한 클래스를 만들어서 빈으로 등록하기 스프링4.2 부터는 @EventListener를 사용해서 빈의 메소드에 사용할 수 있다. 기본적으로는 synchron..

    [Spring] MessageSource

    [Spring] MessageSource

    MessageSource 국제화(i18n) 기능을 제공하는 인터페이스 ApplicationContext extends MessageSource getMessage(String code, Object[] args, String, default, Locale, loc) ... 스프링 부트를 사용한다면 별다른 설정 필요없이 messages.properties를 사용할 수 있다. messages.properties messages_ko_kr.properties ... 릴로딩 기능이 있는 메시지 소스 사용하기