Wie integrieren einem alten Struts-Anwendung mit Spring 3.x
ich Frage mich, wie und was die bevorzugte Art der Integration von Struts 1.x-Anwendung mit Spring 3.x, so dass wir profitieren können von der IOC-Zeug.
InformationsquelleAutor Marco | 2011-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden ContextLoaderPlugin und legen Sie die struts-controller, um die processorClass "AutowiringRequestProcessor" wie diese (in struts-config.xml):
action-servlet.xml hat eine leere Bohnen Kontext-Datei:
Fügen Sie folgenden init-parameter, um das ActionServlet in web.xml:
Schreiben Sie einfach regelmäßig struts-Aktionen, und fügen Sie die annotation "@ - Komponente" auf jede Aktion, so dass der Frühling entdecken Sie die Aktionen auf und erzeugt eine bean aus. Die "AutowiringRequestProcessor" finden Sie die richtige Bohne, die Spiele der action-Klasse definiert, die in Ihrer struts-config.xml.
Ist es jetzt auch möglich, andere beans injiziert Sie in die Action-Klasse wird mit @Autowired auf setter(s).
Nicht kommentieren action-Klassen, die von
@Component
weilAutowiringRequestProcessor
nicht nehmen Ihre Instanzen von Spring BeanFactory es nimmt Sie von Struts und ruft dannautowireBeanProperties()
- Methode auf. Also mit@Component
Ergebnisse auf ungenutzte Bohnen im Frühjahr Kontext.InformationsquelleAutor Joep
Verwenden ContextLoaderPlugIn. Veraltet in Spring 3.0, aber immer noch da.
Habe ich es mit Struts 1.x und Spring 2.5.x - es hat wunderbar funktioniert. Dieser Integrationsansatz erlaubt es, zu injizieren, Spring-Bohnen, die direkt in die Struts-Aktionen, die ist ziemlich sauber und unkompliziert.
InformationsquelleAutor Tomasz Nurkiewicz
Können Sie die ApplicationContextAware-Schnittstelle, um eine utility-Klasse haben Zugriff auf die Datei ApplicationContext.
Können Sie dann den Zugriff auf die statische Methode aus dem Action-Klasse.
Nicht die eleganteste Lösung, aber es funktioniert.
InformationsquelleAutor Paul Croarkin
Funktioniert das nicht. Die ContextLoaderPlugin ist nicht verfügbar in einer version von Frühling nach Frühjahr 2.x. Struts 1.x ist nicht kompatibel mit einer beliebigen version von Spring nach 2.x. Es ist UNMÖGLICH, konfigurieren Sie eine beliebige version von Spring nach 2.x zu verwenden, Struts 1.x. Man bräuchte entweder ein downgrade Spring-version von upgrade-Streben. Es würde wahrscheinlich einfacher sein, ein downgrade Frühjahr, es sei denn, Sie sind mit einer hibernate-version, die letzten 3.x.
Wir haben erfolgreich eingesetzt Spring 3.0 mit Struts 1.2.
Alle Dinge sind möglich ~ Sie brauchen, um eine
spring-2.x.x
jar im classpath...InformationsquelleAutor user5878725