1. @PathVariable

- 요청 URI 패턴의 일부를 받는 방법이다.

- 타입 변환을 지원한다.

- @PathVariable(required = false)와 같은 기능을 제공하는 Optional을 지원한다.

@RestController
public class TestController {
	@GetMapping("/test/{id}")
	public Test getTest(@PathVariable Integer id) {
		Test test = new Test();
		test.setTest(id);
		return test;
	}
}

 

2. @MatrixVariable

- 요청 URI 패턴에서 key-value 쌍의 데이터를 받는 방법이다.

- 타입 변환을 지원한다.

- Optional을 지원한다.

- 해당 애노테이션은 기본적으로 비활성화되어 있다. 활성화하기 위해서는 추가 설정이 필요하다.

//@MatrixVariable 활성화 설정
@Configuration
public class TestConfig implements WebMvcConfigurer {
	@Override
	public void configurePathMatch(PathMatchConfigurer configurer) {
		UrlPathHelper urlPathHelper = new UrlPathHelper();
		urlPathHelper.setRemoveSemicolonContent(false);
		configurer.setUrlPathHelper(urlPathHelper);
	}
}

//@MatrixVariable 적용
@RestController
public class TestController {
	@GetMapping("/test/{id}")
	public Test getTest(@PathVariable Integer id, @MatrixVariable String name) {
		Test test = new Test();
		test.setId(id);
		test.setName(name);
		return test;
	}
}

 

참고

- https://velog.io/@jsj3282/%EC%8A%A4%ED%94%84%EB%A7%81-MVC-%ED%99%9C%EC%9A%A910-%ED%95%B8%EB%93%A4%EB%9F%AC-%EB%A9%94%EC%86%8C%EB%93%9C-2%EB%B6%80-URI-%ED%8C%A8%ED%84%B4

'Spring' 카테고리의 다른 글

Ant Style Pattern  (0) 2021.12.01
TDD, BDD 차이점 및 Given-When-Then Pattern  (0) 2021.11.25
RequestMappingHandlerAdapter  (0) 2021.11.16
Static resources, View templates  (0) 2021.11.16
@RequestBody, @ResponseBody  (0) 2021.11.16