[Spring] Properties 고급버전
- Web/Spring
- 2021. 5. 17.
Properties 고급 버전
목차
Message에 대해 알아보자
기존 Properties를 JSP에서도 쉽게 활용할 수 있는 방법 중 하나입니다.
좀 더 다채롭게 변형시킬 수도 있고, 간편하게 Properties를 접근할 수 있게 도와줍니다.
XML 설정하기
<!-- Properties를 등록한다. -->
<beans:bean class='org.springframework.context.support.ReloadableResourceBundleMessageSource' id='messageSource'>
<!-- <beans:property name="basename" value="/WEB-INF/properties/data1"/> -->
<beans:property name="basenames">
<beans:list>
<!-- Properties 저장 경로 -->
<beans:value>/WEB-INF/properties/data1</beans:value>
<beans:value>/WEB-INF/properties/data2</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<!-- MessageSource를 사용하기 위한 Accessor 등록 -->
<beans:bean id='messageSourceAccessor' class='org.springframework.context.support.MessageSourceAccessor'>
<beans:constructor-arg ref='messageSource'/>
</beans:bean>
사용하고 있는 context.xml에 다음과 같은 xml을 등록해줍니다.
기존 Properties가 있다면, 이 설정 하나로도 끝났습니다.
Properties, Java에서 호출하기
ReloadableResourceBundleMessageSource는 xml에 등록된 내용을 복사 붙여놓기를 진행합니다.
기존 Properties와 다르게 호출하게 됩니다.
여기서 Point는 getMessage()의 매게 변수가 3가지라는 점입니다.
첫 번째 자리는 Properties의 이름입니다.
두 번째 자리는 Properties의 문자열 일부를 변경할 때 활용됩니다.
세 번째 자리는 브라우저의 언어에 따라 Properties의 선택하기 위한 용도로 활용됩니다.
첫 번째와 두 번째 같은 경우에는 사진으로도 쉽게 확인할 수 있지만, 세 번째의 언어는 약간 애매할 수 있습니다.
그 방법을 아래에 설명해드리도록 하겠습니다.
Properties, 언어 구분 방법
크롬을 기준으로 언어를 작업하겠습니다.
크롬 설정 → 고급 → 언어 → 선택합니다.
properties는 properties의 저장이름을 통해 언어를 구분할 수 있습니다.properties가 영어를 불러올때에는 name_en.properties의 en을 통해 영어 일 경우 호출하게 됩니다.
브라우저의 언어를 영어로 변경하니 en_US가 표시되었습니다.
이제 이렇게 되었을 때, Properties가 aaa.a3을 호출하기 위해서는 우선순위 대상인 data1_en.properties를 먼저 호출하게 됩니다.
만약 브라우저의 언어가 한국어일 경우 ko가 표시됩니다.
그리고 aaa.a3를 호출하기 위해서는 우선순위 대상인 data1_ko.properties를 호출하게 됩니다.
마지막으로 properties에는 ko와 en이 있지만, 그 외의 언어일 경우에는 기본 data1.properties가 호출하게 됩니다.
JSP에서 Properties 호출 방법
JSP에서 지시자를 통하여 Spring을 호출하게 된다면, html에서는 spring태그를 활용할 수 있게 됩니다.
그리고 message를 활용하여 roperties의 이름을 출력하면 됩니다.
JSP는 Java와 다르게 Properties의 이름만으로 구분이 가능합니다.
다만, 두 번째의 기능을 jsp에서 활용하기 위해서는 arguments를 활용해야 합니다.
Properties의 내용이 정상적으로 Jsp에 출력된 것을 확인할 수 있습니다.
마무리
Properties의 활용은 매우 다양합니다. 저는 단순히 Server IP보관, API KEY값 보관, DB 보관 용도로 활용하고 있지만, 위 기능을 통해서 더 넓은 활용이 가능할 것으로 예상됩니다.
위의 내용은 윤재성 강사님의 강의를 바탕으로 재현하였습니다.
출처 : https://www.inflearn.com/course/spring-mvc5-project#
윤재성의 만들면서 배우는 Spring MVC 5 - 인프런 | 강의
본 과정은 Spring Framework 에서 배운 개념을 토대로 웹 애플리케이션 구현 방법을 학습하고 배운 내용을 모두 종합하여 최종 미니프로젝트를 진행합니다. 강좌를 마치면 바로 실전 프로젝트를 수
www.inflearn.com
'Web > Spring' 카테고리의 다른 글
[Spring Error] The reference to entity "characterEncoding" must end with the ';' delimiter. (0) | 2021.06.04 |
---|---|
[Spring] org.springframework.web.multipart.MultipartHttpServletRequest (0) | 2021.06.03 |
[Spring] Properties 사용하기 (0) | 2021.05.11 |
[Spring] MAVENREPOSITORY 활용하기, pom.xml 설정하기 (0) | 2021.05.09 |
[Spring] 스프링 MAVEN 프로젝트 만들기 (0) | 2021.05.09 |