Develop/[Spring]
[Spring] SessionLocaleResovler
CALLMESMITHMYNAME
2022. 5. 11. 16:19
반응형
다국어 처리에 대한 값을 지정할 수있다.
예를 들면, Session에 로케일 정보를 넣을수 있는데

이런식으로 사용할 수 있다.
스프링 5부터는 LocaleResolver이라는 인터페이스를 사용할 수 있다.
구현체로는 SessionLocaleResolver 가 있는데 이는 httpsession에 locale정보를 저장한다.
컨트롤러에서 직접 세션에 로케일 정보를 넣어줄 수도있지만

인터셉터로 이를 구현할 수 도있다.
단, 인터셉터로 이를 구현할때는, 파라미터로 언어값을 넘겨줘야한다.

이런식으로 인터셉터에 대한 빈 선언과, 인터셉터에 추가를 해준다.
메시지 파일은

이렇게 basenames라는 이름으로, message.messageSource로 하게되면, 기본 이름이 된다.
이는 다국어에 필요한 파일이 50개라면, xml에서 50개를 다 등록해줘야하는 삽질을 방지해준다.
앵간하면 요청할떄 http 헤더에 locale정보가 담겨서 요청이 가게 된다.
스프링은 LocaleResolver를 통해 해당 정보를 읽어서 메시지 파일을 매핑하여 보여주게 된다.
SessioLocaleResolver 를 제일 많이 사용 디폴트는 accept어쩌고 저쩌고, 기본이다. 구현 한게 없으면 자동으로 해당 리졸버가 사용된다.
url에 파라미터 값을 받아서 해주는 인터셉터도있던거 알쥬?
무튼 해당 두개를 정해진 빈이름으로 id를 잡고 사용하면 바로 사용된다.
반응형