Spring MVC UriComponentsBuilder(서버단에서 쉽게 URI 만들기)

들어가기

아주 간혹 Spring 서버단에서 문자열 URI를 만들어야 할때가 있다. 그냥 자바 String으로 만들어도 되지만, Spring MVC의 org.springframework.web.util 패키지의 UriComponentsBuilder를 사용하면 조금더 쉽고, 명확하게 URI 문자열을 생성 할 수 있다.

UriComponentsBuilder 예제

아래처럼 사용하면된다. URI같은 것을 동적으로 만드는 거 자체가 짜증나긴 하지만, Java String으로 만드는 것보다야 편한듯 하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Test
public void testURI() throws Exception{

UriComponents uriComponents = UriComponentsBuilder.newInstance()
.path("/samplehome/board/read")
.queryParam("bno", 12)
.queryParam("perPageNum", 20)
.build();

logger.info("/samplehome/board/read?bno=12&perPageNum=20");
logger.info(uriComponents.toString()); // /samplehome/board/read?bno=12&perPageNum=20 가 생성된다.
}

@Test
public void testURI2() throws Exception{
UriComponents uriComponents = UriComponentsBuilder.newInstance()
.path("/{a}/{b}/{c}")
.queryParam("bno", 12)
.queryParam("perPageNum", 20)
.build()
.expand("samplehome", "board", "read")
.encode();

logger.info("/samplehome/board/read?bno=12&perPageNum=20");
logger.info(uriComponents.toString()); // /samplehome/board/read?bno=12&perPageNum=20 가 생성된다.
}