Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen Struts2 und SpringMVC?

Was ist der Unterschied zwischen Struts2 und SpringMVC?

Guanhui
GuanhuiOriginal
2020-07-27 16:29:232156Durchsuche

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 nach dem Start des Containers initialisiert; 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.

2. Abfangmechanismus

a Das Struts2-Framework ist eine Aktion auf Klassenebene , Struts2 Der ActionBean-Injection-Bereich ist der Prototyp im Prototypmodus (andernfalls treten Thread-Parallelitätsprobleme auf), und dann werden die Anforderungsdaten über Setter und Getter in die Eigenschaft injiziert.

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. SpringMVC ist ein Abfangen auf Methodenebene. 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 Aktion 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.

Empfohlene Tutorials: „

PHP

“ „Java-Tutorial

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!

Stellungnahme:
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