Spring Boot Devtools
- Devtools
- html 파일 저장 시 서버 재시작없이 view 파일 변경 가능
- 적용
- build.gradle - dependencies 안에 아래 코드 추가
- developmentOnly 'org.springframework.boot:spring-boot-devtools'
- preferences - 컴파일러 - 프로젝트 자동 빌드 체크
- 고급설정 - 컴파일러 - auto-make 허용 체크
- 우측 상단에 구성 편집 - 옵션 수정
- update 작업 시 - 클래스 및 리소스 업데이트
- 프레임 비활성화 시 - 클래스 및 리소스 업데이트
- application.properties 안에 아래 코드 추가
- spring.devtools.restart.enabled=true
- spring.thymeleaf.cache=false
- 크롬 확장자 LiveReload++ 프로그램 설치 후 북마크바에 고정 후 활성화
- build.gradle - dependencies 안에 아래 코드 추가
다국어 처리 (LocaleResolver)
- LocaleResolver
- AcceptHeaderLocaleResolver
- 웹 브라우저가 전송한 헤더의 Accept-Language 값을 기반으로 Locale을 선택한다.
- setLocale() 메서드를 지원하지 않는다.
- SessionLocaleResolver - 많이 사용
- 세션으로부터 Locale 정보를 구한다.
- setLocale() 메서드는 세션에 Locale 정보를 저장한다.
- CookieLocaleResolver
- 쿠키를 이용해서 Locale 정보를 구한다.
- setLocale() 메서드는 쿠키에 Locale 정보를 저장한다.
- FixedLocaleResolver
- 웹 요청에 상관없이 특정한 Locale로 설정한다.
- setLocale() 메서드를 지원하지 않는다.
- AcceptHeaderLocaleResolver
- 다국어 처리 방법 (클릭으로 한/영 전환하기)
- application.properties에 spring.messages.basename=messages 추가
- 언어별로 properties 파일 작성
- messages.properties 생성
- 예시
-
hello=안녕 # name으로 들어온 값이 {0}으로 들어간다. hello.name=안녕, {0}
- messages_en.properties 생성
- 예시
-
hello=Hello # name으로 들어온 값이 {0}으로 들어간다. hello.name=Hello, {0}
- messages.properties 생성
- html에 변수 작성
- 타임리프로 th:text=”#{변수명}” 형식으로 값을준다.
- 여기서 다른 타임리프 문법과는 달리 변수명 앞에는 #이 붙는 다는 점
- 예시
-
<body> <h2 th:text="#{hello}"></h2> <h2 th:text="#{hello.name('Spring')}"></h2> </body>
- html에 경로 작성 및 컨트롤러 메소드 추가
- 예시
- html에 <a href="/changeLocale">전환</a> 추가
- 컨트롤러에 전환 메소드 추가
-
@GetMapping("/changeLocale") public String changeLocale(HttpSession session){ Locale locale = (Locale)session.getAttribute( SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME); if ( Locale.KOREA.equals(locale) ){ session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, Locale.ENGLISH); } else{ session.setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, Locale.KOREA); } return "redirect:/"; }
- 예시
- Config 클래스 생성
-
@Configuration public class Config { @Bean public LocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(Locale.KOREA); //AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver(); return localeResolver; } }
- 혹시 한글이 잘려나온다면 인텔리제이 설정에서 encoding을 UTF-8로 변경하자
728x90
'Back-end > Spring Boot' 카테고리의 다른 글
[Spring Boot] Test (0) | 2024.04.06 |
---|---|
[Spring DB] Repository (JPA, JPQL, Native SQL) (0) | 2024.04.06 |
[Spring Boot] builder, Rest API (0) | 2024.03.31 |
[Spring Boot] 데이터 전달, Param 값 받기, ArrayList (0) | 2024.03.31 |
[Spring Boot] Thymeleaf, redirect/forward (0) | 2024.03.31 |