[Spring] Properties 고급버전

    Properties 고급 버전

     

    목차

       

       

       

        Message에 대해 알아보자

       기존 Properties를 JSP에서도 쉽게 활용할 수 있는 방법 중 하나입니다.

      좀 더 다채롭게 변형시킬 수도 있고, 간편하게 Properties를 접근할 수 있게 도와줍니다.

       

       

      properties
      윤재성 강사님의 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의 위치를 정확하게 XML에 등록한다.

      기존 Properties가 있다면, 이 설정 하나로도 끝났습니다.

       

       

        Properties, Java에서 호출하기

      properties 사용방법
      ReloadableResourceBundleMessageSource 활용하기

      ReloadableResourceBundleMessageSource는 xml에 등록된 내용을 복사 붙여놓기를 진행합니다.

       

      properties 설정
      getMessage()를 활용하여 Properties를 호출하였다.

       기존 Properties와 다르게 호출하게 됩니다.

      properties java 활용
      Properties의 aaa.a1의 이름은 작은 새의 날개짓이다.

      여기서 Point는 getMessage()의 매게 변수가 3가지라는 점입니다.

       

      첫 번째 자리는 Properties의 이름입니다.

      두 번째 자리는 Properties의 문자열 일부를 변경할 때 활용됩니다.

      세 번째 자리는 브라우저의 언어에 따라 Properties의 선택하기 위한 용도로 활용됩니다.

       

       

      첫 번째와 두 번째 같은 경우에는 사진으로도 쉽게 확인할 수 있지만, 세 번째의 언어는 약간 애매할 수 있습니다.

      그 방법을 아래에 설명해드리도록 하겠습니다.

       

       

       

       

       

       

        Properties, 언어 구분 방법

      properties 언어구분
      (구글 크롬 기준) 설정 → 고급 → 언어 → 영어로 변경

       

      크롬을 기준으로 언어를 작업하겠습니다.

      크롬 설정 고급 → 언어 → 선택합니다.

       

      properties는  properties의 저장이름을 통해 언어를 구분할 수 있습니다.properties가 영어를 불러올때에는 name_en.properties의 en을 통해 영어 일 경우 호출하게 됩니다.

       

      locale
      브라우저의 언어는 en_US가 표시되었다.

      브라우저의 언어를 영어로 변경하니 en_US가 표시되었습니다.

      이제 이렇게 되었을 때, Properties가 aaa.a3을 호출하기 위해서는 우선순위 대상인 data1_en.properties를 먼저 호출하게 됩니다.

       

      properties 변수
      Properties 출력 결과 확인하기

      만약 브라우저의 언어가 한국어일 경우 ko가 표시됩니다.

      그리고 aaa.a3를 호출하기 위해서는 우선순위 대상인 data1_ko.properties를 호출하게 됩니다.

       

      마지막으로 properties에는 ko와 en이 있지만, 그 외의 언어일 경우에는 기본 data1.properties가 호출하게 됩니다.

       

       

        JSP에서 Properties 호출 방법

      properties jsp 사용
      Jsp에서 Properties를 호출하기 위해서 springframework를 불러온다.

      JSP에서 지시자를 통하여 Spring을 호출하게 된다면, html에서는 spring태그를 활용할 수 있게 됩니다.

      그리고 message를 활용하여 roperties의 이름을 출력하면 됩니다.

       

      JSP는 Java와 다르게 Properties의 이름만으로 구분이 가능합니다.

       

      arguments
      문자열 일부를 변경하기 위해서는 변경할 값을 attribute를 통해 전달한다.
      전달받은 Object는 arguments를 통해 Properties의 내용과 합친다.

      다만, 두 번째의 기능을 jsp에서 활용하기 위해서는 arguments를 활용해야 합니다.

       

      message jsp 사용
      JSP 출력 결과

       Properties의 내용이 정상적으로 Jsp에 출력된 것을 확인할 수 있습니다.

       

       

       마무리

       Properties의 활용은 매우 다양합니다. 저는 단순히 Server IP보관, API KEY값 보관, DB 보관 용도로 활용하고 있지만, 위 기능을 통해서 더 넓은 활용이 가능할 것으로 예상됩니다.

       

      위의 내용은 윤재성 강사님의 강의를 바탕으로 재현하였습니다.

      출처 : https://www.inflearn.com/course/spring-mvc5-project#

       

      윤재성의 만들면서 배우는 Spring MVC 5 - 인프런 | 강의

      본 과정은 Spring Framework 에서 배운 개념을 토대로 웹 애플리케이션 구현 방법을 학습하고 배운 내용을 모두 종합하여 최종 미니프로젝트를 진행합니다. 강좌를 마치면 바로 실전 프로젝트를 수

      www.inflearn.com

       

      반응형

      댓글

      Designed by JB FACTORY