--- Laurie Harper <[EMAIL PROTECTED]> wrote:
> Is what a Spring 2.5 thing? AFAIK, you need to set the action
> mapping's 'class' attribute to the Spring bean identifier to get 
> injection via the spring plugin... 

Oh; I wonder why I don't have to do that.

My understanding was that they only need to be declared in the Spring
config file if you wanted to configure them manually.

{quote}
  When an object is to be created, it uses the 
  class attribute in the Struts configuration 
  to correspond to the id attribute in the Spring 
  configuration. *If not found, the class will try 
  to be created as usual, then be autowired by Spring.*
{quote}

Dave

> Dave Newton wrote:
> > 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 <[EMAIL PROTECTED]> 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.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to