struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Newton <newton.d...@yahoo.com>
Subject Re: Injecting Spring Services into Struts 2 Actions
Date Thu, 08 May 2008 17:22:54 GMT
Is this a Spring 2.5 thing? I'm not using 2.5 yet and haven't had to do
anything to get my actions to be injected with Spring beans (at least I
don't think so; I remember having to set the object factory to "spring"
in earlier days?)

Dave

--- Laurie Harper <laurie@holoweb.net> wrote:

> Asleson, Ryan wrote:
> >  
> > Hello,
> >  
> > I found this guide to injecting Spring beans into Struts 2 Actions:
> >  
> > http://cwiki.apache.org/WW/spring.html
> >  
> > According to the red box at the bottom of the document, the Struts
> 2
> > Action does not need to be registered with Spring.  So far so good.
> 
> Er, that's not as clear as it could be; I believe it means that 
> 'registering Actions with Spring is not required *if you don't want 
> Spring dependency injection for that action*'. In other words, you
> *do* 
> need Spring to know about the action if you want it to inject
> dependencies.
> 
> > However, I'm a little unclear as to how exactly it "knows" what
> Spring
> > beans to inject into the Struts 2 Action.  Assuming I have a Struts
> 2
> > Action that depends on a PersonService, I assume that the Struts 2
> > Action would have a public mutator for the PersonService like this:
> >  
> > public void setPersonService(PersonService service) {
> >     this.personService = service;
> > }
> >  
> > How does the injection system "know" that this method should be
> used for
> > injecting a Spring bean?  Imagine that the Struts 2 Action has
> several
> > "set" methods, and that there are a number of configured Spring
> beans.
> > It would take way too long for the injection system to look through
> > every "set" method on the Action and try to find a matching Spring
> bean,
> > especially if there are a lot of Spring beans (and there usually
> are).
> >  
> > The document above includes this comment:
> >  
> > We strongly recommend that you find declarative ways of letting
> Spring
> > know what to provide for your actions.
> >  
> > But it doesn't give an example of how to let Spring know what to
> provide
> > to the actions.
> >  
> > So, the question is:  How do I tell Spring what beans need to be
> > injected into the Action?
> 
> You can either configure the action as a Spring bean in your 
> applicationContext.xml and use the normal declarative syntax to do
> this, 
> or you can use Spring 2.5's @Component, @Resource, etc. annotations
> and 
> skip the XML. But you do need to do one or the other.
> 
> L.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message