본문 바로가기

Spring15

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.
Spring Camp 2019 강의 자료 모음 Spring Camp 2019 강의 자료를 볼 수 있는 URL을 모아 놓은 글입니다. 1. 실전에 써먹는 스프링 부트 https://docs.google.com/presentation/d/1nid-BYFGHYjvzgMpbBBgEC2Hwx_nJ6JomikDbHtA55g/edit?fbclid=IwAR08g77Usg6iG8iNAvDl67RaPjyoGcrL5_8GnRZ-rLGKi7ydfq3GnBwA2Nc#slide=id.p 실전에 써먹는 스프링 부트 이야기 실전에 써먹는 스프링 부트 Bootiful Your Life! @Spring Camp 2019 실전에 써먹을 수 있는 ‘스프링 부트'에 대한 지식을 공유하여 ‘Bootiful Your Life’를 만들어 갔으면 좋겠습니다. 스프링 부트 개발을 이끌고 있는 개.. 2019. 5. 6.
Spring HandlerMethodArgumentResolver 인터페이스 프로그래머스 강의 과제를 하던 중 클라이언트에서 보낸 쿼리 파라미터 값이 컨트롤러 파라미터에 바인딩이 되지 않아서 삽질을 했다. Spring 프레임워크에서 지원하는 Pageable 인터페이스를 사용하지 않고, 직접 Pageable 인터페이스를 생성해서 사용했다. 클라이언트에서 쿼리 파라미터로 값 보내기 포스트 목록을 조회하는데, 쿼리 파라미터 값으로 offset 값은 0, limit 값은 5를 보내고 있다. 컨트롤러에서 포스트 목록 조회 메서드 컨트롤러에서는 리스트 조회를 하기 위한 메서드를 다음과 같이 구현했다. 이 때, Pageable 인터페이스는 직접 생성했다. @RestController @RequestMapping("api") public class PostRestController { @Get.. 2019. 5. 5.