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!