Cómo Spring está inyectando propiedades en acciones Struts, que no están definidas en applicationContext.xml
Estoy en un proyecto que tiene frameworks como Spring 3 + Struts 2 + Hibernate 3. También usa Spring Security.
Spring and Struts se integra utilizando springContextLoaderListener
definido enweb.xml
<listener>
<display-name>Spring Initialization</display-name>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Hay varias clases de servicio que generalmente hacen llamadas db. me gustaagentserviceprocess
es una de esas clases que tiene un método comogetAgents()
.
Las acciones de Struts tienen una propiedad y un setter getter para cada proceso y esas clases de proceso se definen como bean enapplication-context.xml
.
Sorprendentemente, no puedo encontrar ningún bean que tenga clase de acción como parámetro de clase. Quiero decir que la primavera no está controlando la instanciación del objeto de acción. Entonces, ¿cómo puede Spring inyectar objetos de propiedad de servicio dentro de estas acciones?
Además, encontré la siguiente entrada
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
<url-pattern>*.htm</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>