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@...
For additional commands, e-mail:
user-help@...