Heim > Java > javaLernprogramm > Hauptteil

Was ist der Unterschied zwischen struts2 und springMVC?

藏色散人
Freigeben: 2020-04-17 09:43:21
Original
2316 Leute haben es durchsucht

Was ist der Unterschied zwischen struts2 und springMVC?

Was ist der Unterschied zwischen struts2 und springMVC?

1. Framework-Mechanismus

1. Struts2 wird durch Filter (StrutsPrepareAndExecuteFilter) und SpringMVC (DispatcherServlet) durch Servlet implementiert.

2. Der Filter wird initialisiert, nachdem der Container gestartet wurde; er stürzt ab, nachdem der Dienst gestoppt wurde, später als Servlet. Das Servlet wird beim Aufruf initialisiert, bevor Filter aufgerufen wird, und wird zerstört, nachdem der Dienst beendet wurde.

Empfohlen: „Java Learning

2. Struts2

a Klassenebene Zum Abfangen wird für jede Anforderung eine Aktion erstellt. Bei der Integration mit Spring ist der ActionBean-Injektionsbereich von Struts2 der Prototypmodus-Prototyp (andernfalls treten Thread-Parallelitätsprobleme auf), und dann werden die Anforderungsdaten in die Eigenschaft injiziert durch Setter und Getter.

b. In Struts2 entspricht eine Aktion einem Anforderungs- und Antwortkontext, der über Attribute empfangen werden kann. Dies zeigt, dass Attributparameter von mehreren Methoden gemeinsam genutzt werden.

c. Eine Aktionsmethode in Struts2 kann einer URL entsprechen, aber ihre Klassenattribute werden von allen Methoden gemeinsam genutzt, was es unmöglich macht, Anmerkungen oder andere Methoden zur Identifizierung ihrer Methode zu verwenden

2. SpringMVC

a. Eine Methode entspricht einem Anforderungskontext, daher ist die Methode grundsätzlich unabhängig und hat exklusiven Zugriff auf Anforderungs- und Antwortdaten. Jede Methode entspricht gleichzeitig einer URL. Die Parameterübergabe wird direkt in die Methode eingefügt, was für die Methode einzigartig ist. Die Verarbeitungsergebnisse werden über ModeMap an das Framework zurückgegeben.

b. Während der Spring-Integration ist das Controller-Bean von SpringMVC standardmäßig auf den Singleton-Modus eingestellt. Daher sollte es keine gemeinsamen Attribute geben Wenn Sie den Standardbereich ändern möchten, müssen Sie die Annotationsänderung @Scope hinzufügen.

3. Leistung

SpringMVC implementiert eine Nullkonfiguration. Aufgrund des methodenbasierten Abfangens von SpringMVC wird die Bean-Injection im Singleton-Modus einmal geladen. Struts2 ist ein Abfangen auf Klassenebene, und alle Attributwertinjektionen müssen geladen werden. Daher sind die Entwicklungseffizienz und Leistung von SpringMVC höher als bei Struts2.

4. Abfangmechanismus

Struts2 verfügt über einen eigenen Abfangmechanismus, der eine unabhängige Aop-Methode verwendet, was dazu führt, dass die Anzahl der Konfigurationsdateien von Struts2 größer ist als die von SpringMVC.

5. Konfiguration

Spring MVC und Spring sind nahtlos. Die Verwaltung und Sicherheit dieses Projekts ist ebenfalls höher als bei Struts2 (natürlich kann Struts2 durch unterschiedliche Verzeichnisstrukturen und zugehörige Konfigurationen auch den gleichen Effekt wie SpringMVC erzielen, aber es gibt viele Orte, an denen eine XML-Konfiguration erforderlich ist).

SpringMVC hat zu 100 % eine Nullkonfiguration.

6. Designideen

Struts2 entspricht eher den OOP-Programmierideen, während SpringMVC vorsichtiger ist und Servlets erweitert.

7. Integration

SpringMVC integriert Ajax, was sehr praktisch ist. Es kann mit nur einer Annotation @ResponseBody implementiert werden und gibt dann den Antworttext direkt zurück, und der Struts2-Interceptor wird integriert Ajax: Bei der Verarbeitung in Action müssen Sie im Allgemeinen ein Plug-In installieren oder Ihren eigenen Code schreiben, um es zu integrieren, was relativ umständlich zu verwenden ist.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen struts2 und springMVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage