Como o Spring está injetando propriedades nas ações do Struts, que não estão definidas no applicationContext.xml
Estou em um projeto com estruturas como Spring 3 + Struts 2 + Hibernate 3. Também usa segurança de primavera.
Spring and Struts é integrado usando a molaContextLoaderListener
definido emweb.xml
<listener>
<display-name>Spring Initialization</display-name>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Existem várias classes de serviço que geralmente fazem chamadas de banco de dados. gostaragentserviceprocess
é uma dessas classes com método comogetAgents()
.
As ações Struts têm uma propriedade e um setter getter para cada processo e essas classes de processo são definidas como bean emapplication-context.xml
.
Surpreendentemente, não consigo encontrar nenhum bean com classe de ação como parâmetro de classe. Quero dizer, a primavera não está controlando a instanciação do objeto de ação. Então, como o Spring pode injetar objetos de propriedade de serviço nessas ações?
Além disso, eu encontrei a seguinte 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>