서버 개발/스프링

스프링 프레임워크 - (4) 데이터 바인딩

_금융덕후_ 2019. 9. 10. 19:31
728x90
반응형

데이터 바인딩

외부에서 입력된 값을 통해 자바 객체의 Property,

즉 멤버변수에 설정하는 과정을 데이터 바인딩이라고 한다.

 

DataBinder

이러한 프로세스는 웹 통신에서 데이터를 주고받을 때 자주 일어난다.

HTTP요청이 들어오면 해당 요청은 Json으로 되어있고,

Json으로 들어온 요청을 애플리케이션에서 사용할 Java객체로 변환해야 한다.

이 때 하나하나 매핑해서 사용할 수도 있지만, DataBinder를 사용하면,

형변환 등 여러가지를 편리하게 해준다.

request라는 HTTP요청이 도착했을 때, DataObject로 변환시켜주는 예제이다.

DataObject obj = new DataObject();
ServletRequestDataBinder dataBinder = new ServletRequestDataBinder(obj);
dataBinder.bind(request);

 

Property 매핑

또한 데이터 바인딩은, 애플리케이션 설정에서 많이 일어난다.

.properties파일에 다음과 같은 Property가 정의되어 있다면,

application.givenInput = "input"

 

다음과 같이 스프링 빈에서 기본값을 받아올 수 있다.

이 때 ":" 뒤의 값은 properties파일에서 값이 주어지지 않을 경우의 기본값이다.

@Component
public class ApplicationProperties {
    ...
    @Value("${application.givenInput:defaultInput}")
    private String givenInput;
    ...
}

위의 코드에서는 주어지지 않을 경우 "defaultInput"의 기본값으로 대체하게 되어있다.

 

참고로 이 .properties파일의 중요한 점은, 사용자가 지정하는 변수들 뿐만 아니라,

JVM설정, 및 시스템의 환경변수도 로딩할 수 있다는 점이다.

 

참고자료

스프링  철저 입문, 위키북스

728x90
반응형