INT-677, INT-682, INT-676 - Modified documentation around added support for inner-bean definition of message handlers within the namespace configuration.

This commit is contained in:
Oleg Zhurakousky
2009-06-26 01:17:39 +00:00
parent 20171072d6
commit 6a47c40dcb
5 changed files with 97 additions and 4 deletions

View File

@@ -123,15 +123,29 @@
<para>
The "router" element provides a simple way to connect a router to an input channel, and also accepts the
optional default output channel. The "ref" may provide the bean name to one of the implementations described
above:
above or custom Router (MessageHandler) implementations:
<programlisting language="xml"><![CDATA[<router ref="payloadTypeRouter" input-channel="input1" default-output-channel="defaultOutput1"/>
<router ref="recipientListRouter" input-channel="input2" default-output-channel="defaultOutput2"/>]]></programlisting>
<router ref="recipientListRouter" input-channel="input2" default-output-channel="defaultOutput2"/>
<router ref="customRouter" input-channel="input3" default-output-channel="defaultOutput3"/>
<beans:bean id="customRouterBean class="org.foo.MyCustomRouter"/>]]></programlisting>
Alternatively, the "ref" may point to a simple Object that contains the @Router annotation (see below), or the
"ref" may be combined with an explicit "method" name. When specifying a "method", the same behavior applies as
described in the @Router annotation section below.
<programlisting language="xml"><![CDATA[<router input-channel="input" ref="somePojo" method="someMethod"/>]]></programlisting>
Using a "ref" attribute is generally recommended if custom router handler implementation can be reused in other <code>&lt;router&gt;</code> definitions. However
if custom router handler implementation has to be scoped to a concrete definition of the <code>&lt;router&gt;</code>, starting with v1.0.3, Spring Integration supports
inner bean definitions for custom router handlers within the <code>&lt;router&gt;</code> element:
<programlisting language="xml"><![CDATA[<router method="someMethod" input-channel="input3" default-output-channel="defaultOutput3">
<beans:bean class="org.foo.MyCustomRouter"/>
</router>]]></programlisting>
</para>
<note>
<para>Using both "ref" attribute and inner handler definition in the same <code>&lt;router&gt;</code> configuration is not allowed, as it creates an ambiguous condition and will result in Exception being thrown</para>
</note>
</section>
<section id="router-annotation">