ControllerClassNameHandlerMapping
나는 스프링 4때부터 봣기때문에 이러한 것이 잇는지도 몰랐다.
요세 하는 프로젝트에 @Requestmapping부분이 아무런 옵션이 없길래
왜그런가 해서 찾아보니 그냥 폼으로 적어놓은거더라
그러면서 컨트롤러는 url맵핑이 된다? 왜그런지 이유를 찾아봤다.
<!-- URI handler mapping -->
<beans:bean id="urlMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<beans:property name="caseSensitive" value="false" />
<beans:property name="basePackage" value="com.plays.js" />
</beans:bean>
이것은 2.X시절에 사용하던 Mapping방식
빈을 등록시켜주면 해당 패키지에 Controller가 잇으면 찾아서 Controoler를 url맵핑해줌.
예를 들어서 HomeController였으면 home이라는 글자로 맵핑됨
더 자세한 예를 들어서
서버 url이 js로 시작한다고치면
Com.plays.js.home에 HomeController class가 있고 test method 가 있으면
주소는
Host:port/js/home/home/test로 매칭댐
여기서 첫번째 home 패키지 home 두번째 home은 HomeController에서 home
옵션이 몇가지있는데
basePackage 는 기본적으로 패키지를 말하는거야 만약에 com이라고 해놧으면
Url도 바뀜
Com이 기본이니깐 plays/js/home/home/test로 바뀜
caseSensitive 는 대문자 사용여부
pathPrefix 는 접두어 형태로 특정 url을 강제할수있다.