26.3. Making a Spring bean into a Seam component
The
<seam:component/>
namespace handler can be used to transform any Spring bean into a Seam component. Just add the <seam:component/>
tag to the declaration of the bean that you want to make into a Seam component:
<bean id="someSpringBean" class="SomeSpringBeanClass" scope="prototype"> <seam:component/> </bean>
By default,
<seam:component/>
creates a stateless Seam component with the class and name provided in the bean definition. Occasionally — when a FactoryBean
is used, for example — the Spring bean class may differ from the class listed in the bean definition. In this case, specify the class
explicitly. You should also explicitly specify a Seam component name where there is a potential naming conflict.
If you want the Spring bean to be managed in a particular Seam scope, use the
scope
attribute of <seam:component/>
. If the Seam scope specified is anything other than STATELESS
, you must scope your Spring bean to prototype
. Pre-existing Spring beans usually have a fundamentally stateless character, so this attribute is not usually necessary.