ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring MVC - Properties
    Spring/Spring MVC 2021. 12. 30. 18:39
    반응형

    Properties

    • 웹을 개발할 때 데이터 값 중 변하지 않는 값들을 저장하는 파일
    • Spring MVC에서는 Properties에 저장되어 있는 데이터 값들을 사용한다.

     

    더보기

     Properties파일에서 문자들은 자동으로 decoding 되므로 작성하는데 어려움이 있다. (문자가 유니코드로 표시됨)

    따라서 Properties Editor를 설치해주자.

    Help -> Install New Software... -> Add ->Location

    Name : Property Editor(이름은 아무렇게나 해도 된다.)

    Location : http://propedit.sourceforge.jp/eclipse/updates


     

     

    우선 사용할 Properties 파일을 만들고 간단한 데이터 값을 저장해 보자.

     

     data1.properties          (/WEB-INF/properties/)

    aaa.a1 = 100
    aaa.a2 = 문자열1
    
    bbb.b1 = 200
    bbb.b2 = 문자열2

     

     이제 Controller에서 Properties 파일에 저장된 데이터들을 직접 사용하는 방법에 대해 알아보자.

     

    Controller

    @Controller
    @PropertySource("/WEB-INF/properties/data1.properties")
    public class testController {
    
    	@Value("${aaa.a1}")
    	private int a1;
    	@Value("${aaa.a2}")
    	private String a2;
    	@Value("${bbb.b1}")
    	private int b1;
    	@Value("${bbb.b2}")
    	private String b2;
    	
    	@GetMapping("/test1")
    	public String test1() {
    		
    		System.out.println(a1);
    		System.out.println(a2);
    		System.out.println(b1);
    		System.out.println(b2);
    		
    		return "test1";
    	}
    }

    실행 결과

    @PropertySource("/WEB-INF/properties/data1.properties")
     - 사용할 properties 파일을 지정
     - properties 파일에 저장되어 있는 데이터들은 decoding 되어 있다.
     - 때문에 데이터 값을 가져오면 encoding 해줘야 한다.
     - @PropertySource(value = {"/WEB-INF/properties/data2.properties"}, encoding = "UTF-8"을
      해주거나 workspace에서 file encoding 방식을 UTF-8로 바꾸면 된다.


    여러 propertie 파일을 가져오는 방법
     1. @PropertySource("/WEB-INF/properties/data1.properties")
        @PropertySource("/WEB-INF/properties/data2.properties")
     2. @PropertySource(value = {
                    "/WEB-INF/properties/data1.properties",
                    "/WEB-INF/properties/data2.properties")
         })
     3. @PropertySources({
                    @PropertySource("/WEB-INF/properties/data1.properties"),
                    @PropertySource("/WEB-INF/properties/data2.properties")
         })

    @Value("${aaa.a1}")
     - properties 파일에 저장한 값들을 Value를 통해 가져옴
     - properties에 저장된 변수명과 꼭 같지 않아도 된다.
     - 원하는 자료형으로 가져오면 된다. (데이터 값에 맞는 자료형으로 가져와도 됨)
     
    반응형

    'Spring > Spring MVC' 카테고리의 다른 글

    Spring MVC - 유효성 검사 (JSR-303)  (0) 2022.01.03
    Spring MVC - Message  (0) 2022.01.02
    Spring MVC - Cookie  (0) 2021.12.30
    Spring MVC - ApplicationScope 빈 주입  (0) 2021.12.30
    Spring MVC - ApplicationScope  (0) 2021.12.29

    댓글

Designed by Tistory.