리소스파일:.properties로 끝나는 파일로 스프링 프레임웍에서 자원으로 사용하는 파일
  키=값의 쌍으로 자원(상수)을 등록한다.
  주석처리는 #으로

  리소스 파일은 이클립스의 classpath인
  src폴더 밑 어디에든 위치하면 된다.
  (생성시 new->File로 생성.확장자는 .properties 로)

 

resource08 > Resource.jsp

<a href="<c:url value="/Resource/Resource.do" />" class="btn btn-info">리소스 사용하기</a>
<ul class="list-unstyled">
   <li>빈 설정파일에서 \${}로 읽어온 경우 :${xml}</li>
   <li>자바파일(.java)에서 @Value로 읽어온 경우 :${java}</li>
</ul>

 

[리소스파일(.properties)에 등록한 키값 사용하기]  
빈 설정파일(XML)에서는 EL표현식 사용해서 읽을 수 있고
자바소스에서는 @Value어노를 사용해서 읽을 수 있다.
근데!!!!!! EL사용 시 빈 공간 있으면 안됨!!

1.src밑에 파일명 .properties파일 생성,  파일명은 내맴
2.빈으로 등록하거나 <context:property-placeholder />태그를 등록
location 속성을 통해서 리소스파일 위치를 설정해 준다.
(만약 빈으로 등록 했다면 주입할 때 setter로 생성하면됨)

 

 

서블릿컨텍스트
context 접두어 사용(리소스파일 여러개면 , 로 구분해서 나열) 

classpath: 이건 규칙임

       어디폴더.파일  (이동경로 쓰는 법 잘 보기)

<context:property-placeholder 
    location="classpath:rescs.properties,
    	  classpath:sub/rescs.properties,
    	  classpath:config/database.properties"/>

location이 설정한 곳에다가 리소스파일을 저장 해 두자

src/main/resources > rescs.properties

#rescs.properties
#Comment is sharp
#key=value
#Not use username key, beacause username key is system user
user = PARK
password=1234

src/main/resources > sub > rescs.properties

name=\uBC15\uAE38\uB3D9

** properties 파일에서 한글은 저렇게 알아서 변경 됨 저거 박길동임

 

저 설정해 놓은 리소스들을 담기 위한 커맨드 객체를 생성하자

UserCommand.java

public class UserCommand {
	//.properties파일의 키와 클래스의 속성을 일치시키자 가.급.적.이면
	
	private String name;
	private String username;
	private String password;

+게터/셋터 는 생략

@Override
public String toString() {
	return String.format("[이름:%s, 아이디:%s, 비번:%s]",name,username,password);
   }
}

이렇게만 두면

프로그램이 말을 못알아 먹으니

만들어 놓은 두개를 연결 해야 겠지! (빈으로 연결)

 

서블릿컨텍스트

(빈에 class=" 패키지전체경로.클래스명 "  이거 경로 좀 잘 익히자!!!! 쫌 !!!!)  

<!-- 리소스파일에 있는 값으로 커맨드 객체 설정 -->
	<beans:bean p:name="${name}" p:username="${user}" p:password="${password}" 
    				class="com.kosmo.springapp.basic.resource.UserCommand" />

 

ResourceController.java  이번엔 다 연결하고 등록하고나서 컨트롤러를만듦.

1.확장자가 .properties인 리소스파일 src/main/resource 에 생성
   (하위 폴더생성 시는 new -> package로 생성)
2.servlet-contecxt.xml파일에 <context:property-placeholde> 등록 되어 있어야 함!!
3. 클래스에서 사용 시에는 @Value어노테이션 사용

@Controller("resourcePropertyController")
public class ResourceController {

    //빈 설정파일에서 리소스 파일의 자원을 ${키}로 설정한 빈 객체
    @Autowired
    private UserCommand command;

    자바파일에서 @Value어노테이션으로 리소스 파일의 자원을 읽어오기

       사용 예 
        @Value("${키값}")
        private 자료형 변수;	  

    @Value("${name}")
    private String name;
    @Value("${user}")
    private String username;
    @Value("${password}")
    private String password;

    @RequestMapping("/Resource/Resource.do")
    public String exec(Model model) {
        //데이터저장
        model.addAttribute("xml",command);
        model.addAttribute("java",String.format("[이름:%s, 아이디:%s, 비번:%s]",name,username,password));
        //뷰정보 반환
        return "resource08/Resource"; 
    }

}

뒤에 리소스파일을 

리소스파일의 키를 동일하게 했더니

뒤에데이터가 출력된다....

하놔 이건 어떻게 해야 하나.....  내일 질문해 봐야겠다....

+ Recent posts