본문 바로가기

Spring17

ServletContextListener 이벤트 처리 ServletContextListener 인터페이스 스프링 웹 애플리케이션 컨텍스트의 실행 시점과 종료 시점 이벤트를 리스닝 하는 인터페이스이다. public interface ServletContextListener extends EventListener { public default void contextInitialized(ServletContextEvent sce) { } public default void contextDestroyed(ServletContextEvent sce) { } } ServletContextListener 메서드 contextInitialized : 애플리케이션이 시작될 때 호출되는 메서드 contextDestroyed : 애플리케이션이 중지될 때 호출되는 메서드 Cus.. 2019. 7. 26.
스프링에서 Exception 핸들러 매핑하기 @ExceptionHandler WelcomeController 클래스에 있는 두 메서드는 모두 @ExceptionHandler 어노테이션을 붙였습니다. 첫 번째 handle 메서드는 CustomException 예외 처리 전용 메서드이며, 두 번째 handleDefault 메서드는 일반 예외 처리 메서드 역할을 합니다. 두 메서드 모두 에러 상황에 따라 맞는 렌더링 할 뷰 이름을 반환하고 있습니다. @ExceptionHandler는 특정 컨트롤러 안에서 예외가 발생한 경우에만 예외를 매핑하는 문제점이 있습니다. @Controller public class WelcomeController { @ExceptionHandler(CustomException.class) public String handle(C.. 2019. 7. 25.
Thymeleaf 템플릿 엔진에서 로케일 텍스트 메시지 처리 로케일 관련 텍스트 메시지 파일 생성 로케일 관련 텍스트 메시지 파일은 외부화 해서 웹 페이지와 독립적으로 개발하는 것이 효율적입니다. 스프링은 MessageSource 인터페이스를 구현한 메시지 소스로 텍스트 메시지를 해석할 수 있다. messageSource를 Bean으로 등록하면, DispatcherServlet이 자동 감지하여 등록합니다. MessageSource 인터페이스의 구현체인 ResourceBundleMessageSource 클래스는 로케일마다 따로 리소스 번들을 생성하고 이를 이용하여 메시지를 해석합니다. @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceB.. 2019. 7. 25.
Thymeleaf 에서 현재 로케일 값 출력하기 쿠키값에 따라 로케일 해석 CookieLocaleResolver 클래스는 사용자 브라우저의 쿠키값에 따라 로케일을 해석한다. 해당 쿠키가 없으면, accept-language 헤더로 기본 로케일을 설정한다. LocaleChangeInterceptor 클래스는 Http 요청에 특정한 매개변수 값이 존재하는지 확인하고, 해당 값으로 사용자 로케일을 변경한다. @Configuration public class WebMvcConfiguration implements WebMvcConfigurer { private static final Locale DEFAULT_LOCALE = new Locale("en"); @Override public void addInterceptors(InterceptorRegistry.. 2019. 7. 25.
데이터 암호화를 위한 JPA Attribute Converter User 클래스에서 juminNumber 속성 값을 테이블에 저장할 때 암호화하는 예제입니다. User Entity 생성 @Entity @Table(name = "USER") @DynamicInsert @DynamicUpdate @Getter public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "NAME", length = 50, nullable = false) private String name; @Column(name = "JUMIN_NUMBER", length = 100, nullable = false) @Convert(converter = StringCryp.. 2019. 6. 10.
Spring Core 라이브러리 이용해서 Properties 파일 데이터 읽기 public class Main { public static void main(String[] args) throws Exception { Resource resource = new ClassPathResource("custom.properties"); // 1 Properties properties = PropertiesLoaderUtils.loadProperties(resource); // 2 System.out.println(properties); // 3 } } 1. custom.properties 파일 데이터를 가져와서 Resource 객체로 캐스팅 2. PropertiesLoaderUtils 유틸 클래스를 이용해서 Properties 객체로 변환 3. properties 객체 내용 출력 2019. 5. 28.