--- 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]