2010-08-29 6 views
5

Was zwischen Deklarieren der Testcontroller mit dem Spring-Controller Klischee wie das ist der Unterschied:Was ist der Unterschied zwischen der Deklaration eines Controllers mit dem Spring Controller-Stereotyp oder einer Unterklasse des AbstractControllers?

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

gegenüber als Unterklasse der AbstractController wie folgt aus:

import org.springframework.web.servlet.mvc.AbstractController; 
//... 
public class TestController extends AbstractController 

Antwort

2

Der offensichtliche Unterschied ist, dass mit Anmerkungen Sie tun nicht von einer bestimmten API abhängen.

Die Annotation-Konfiguration ist seit Spring 2.5 verfügbar, und beide Konfigurationen ergeben nahezu dasselbe Ergebnis. Ab dem Frühjahr 3.0 können Sie keine zweite Art von Konfiguration verwenden (es gibt einfach keine zu erweiternden Klassen) und so sind nur die Anmerkungen vorhanden.

+0

Der zweite Weg sollte immer noch mit 3.0 funktionieren Die Klassen sind alle da: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/AbstractController .html – samitgaur

+1

Mein schlechtes. Klassen sind immer noch da. Aber die meisten von ihnen sind veraltet. Veraltet ab Frühjahr 3.0 zugunsten der kommentierten Controller http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/mvc/BaseCommandController.html –