2017-03-29 4 views
2

Ich bin neu in Spring-mvc. In meinem ersten Tutorial habe ich Zweifel, wir erstellen einen Servlet von DispatcherServlet in web.xml und markieren Sie unseren Controller mit @contorller Annotation. Dann verwenden wir @Requestmapping Annotation filtern wir URL für Funktion aufgerufen werden.Suche Controller in einer Webanwendung

Wie Spring sucht nach Controller in der Webapp? Welche Funktion wurde tatsächlich in DispatcherServelet aufgerufen, um eine Instanz der Controller-Klasse zu erstellen? Kann ich mehrere Controller in meiner Anwendung haben?

Antwort

2

Wie Spring sucht nach Controller in der Webapp?

Frühling Container durchsucht alle Pakete angegeben durch @ComponentScan Anmerkung (oder mit component-scan in xml config) und wenn Sie Ihre Bean-Klasse mit Stereotyp Annotation wie @Controller, Container Frühling markieren wird die Instanz (standardmäßig erstellen Singleton-Bereich) Ihrer Controller-Klasse und ordnet die URL zusammen mit dem Request-Methodentyp zu (wie GET, POST, PUT, usw.). Die anderen Stereotyp-Annotationen sind aufgelistet here (wie @Service, etc ..) und der Container erstellt auch Objekte für diese Typen.

Welche Funktion wurde in DispatcherServelet tatsächlich aufgerufen, um eine Instanz der Controller-Klasse zu erstellen?

Federkern-Container erstellt die Instanzen für alle Bohnen mit Klischees kommentieren (wie oben im Behälter erklärt starten) und dann Dispatcherservlet verwendet HandlerMapping die URLs zu den Controller-Methoden und RequestMappingHandlerMapping Implementierung zur Karte wird standardmäßig verwendet, und wenn die Anforderung kommt, wird sie an die jeweilige Controller-Methode delegiert. Sie können here suchen.

Kann ich mehrere Controller in meiner Anwendung haben?

Ja, Sie können in Ihrer Anwendung mehrere Controller definieren. In einem typischen Webanwendungsprojekt würden Sie viele Controller-Klassen sehen, denen jeweils die entsprechenden URLs und die Geschäftslogik zugeordnet sind, die über ihre Serviceklassen abgewickelt werden.

Ich schlage vor, Sie beziehen sich auf this, um zu verstehen, wie der Federbahnfluss funktioniert.

1

Kann ich mehrere Controller in meiner Anwendung haben?

Ja. Sie können mehrere Controller in Ihrer Anwendung erstellen. Sie können mehr Idee folgen this Post.

Verwandte Themen