views:

35

answers:

1

What's the difference between declaring the TestController with the Spring Controller stereotype like this:

import org.springframework.stereotype.Controller;
//...
@Controller
@RequestMapping("/test")
public class TestController

versus as a subclass of the AbstractController like this:

import org.springframework.web.servlet.mvc.AbstractController;
//...
public class TestController extends AbstractController
+1  A: 

The obvious difference is that with annotations you do not depend on any specific API.

Annotation configuration is available since Spring 2.5 and both configuration give you pretty much the same result. As of Spring 3.0 you cannot use second type of configuration (there simply no classes to extend) and so annotations is all you have.

Georgy Bolyuba
The second way should still work with 3.0 The classes are all there: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/AbstractController.html
Samit G.
My bad. Classes are still there. But most of them are deprecated. Deprecated. as of Spring 3.0, in favor of annotated controllers http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html
Georgy Bolyuba