스프링 2.5와 주석을 사용하여 스프링 -mvc 웹 컨텍스트를 구성하고 있습니다. 불행히도, 나는 다음과 같은 일을 할 수 없습니다. 이 버그 (버그처럼 보이는지) 또는 어노테이션 및 인터페이스 구현 서브 클래 싱 방식에 대한 기본적인 오해가 있는지 확실하지 않습니다. 예를 들어 Spring MVC 인터페이스를 구현하는 컨트롤러에서 @Controller를 사용하여 문제가 발생했습니다.
,@Controller
@RequestMapping("url-mapping-here")
public class Foo {
@RequestMapping(method=RequestMethod.GET)
public void showForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public String processForm() {
...
}
}
잘 작동합니다. 컨텍스트가 시작되면이 처리기에서 처리하는 URL이 발견되고 모든 것이 훌륭하게 작동합니다.
그러나 이것은하지 않습니다
@Controller
@RequestMapping("url-mapping-here")
public class Foo implements Bar {
@RequestMapping(method=RequestMethod.GET)
public void showForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public String processForm() {
...
}
}
내가 URL을 끌어하려고, 나는 다음과 같은 불쾌한 스택 추적 얻을 : 나는 초록을 할 줄을 변경하는 경우, 그러나
javax.servlet.ServletException: No adapter for handler [[email protected]]: Does your handler implement a supported interface like Controller?
org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1091)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
을 슈퍼 클래스와 Foo가 그것을 확장했다면, 다시 작동합니다.
@Controller
@RequestMapping("url-mapping-here")
public class Foo extends Bar {
@RequestMapping(method=RequestMethod.GET)
public void showForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public String processForm() {
...
}
}
이것은 버그와 같습니다. @Controller 어노테이션은 이것을 컨트롤러로 표시하기에 충분해야하며, 컨트롤러에서 하나 이상의 인터페이스를 구현할 수 있어야한다. 어떤 아이디어?
는주의 할 필요 CGLIB 오히려 더 이상 사용되지 않습니다. –