| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.ejb.interceptor.SpringBeanAutowiringInterceptor
public class SpringBeanAutowiringInterceptor
EJB3-compliant interceptor class that injects Spring beans into
 fields and methods which are annotated with @Autowired.
 Performs injection after construction as well as after activation
 of a passivated bean.
 
To be applied through an @Interceptors annotation in
 the EJB Session Bean or Message-Driven Bean class, or through an
 interceptor-binding XML element in the EJB deployment descriptor.
 
Delegates to Spring's AutowiredAnnotationBeanPostProcessor
 underneath, allowing for customization of its specific settings through
 overriding the configureBeanPostProcessor(org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor, java.lang.Object) template method.
 
The actual BeanFactory to obtain Spring beans from is determined
 by the getBeanFactory(java.lang.Object) template method. The default implementation
 obtains the Spring ContextSingletonBeanFactoryLocator, initialized
 from the default resource location classpath*:beanRefContext.xml,
 and obtains the single ApplicationContext defined there.
 
NOTE: If you have more than one shared ApplicationContext definition available
 in your EJB class loader, you need to override the getBeanFactoryLocatorKey(java.lang.Object)
 method and provide a specific locator key for each autowired EJB.
 Alternatively, override the getBeanFactory(java.lang.Object) template method and
 obtain the target factory explicitly.
 
WARNING: Do not define the same bean as Spring-managed bean and as
 EJB3 session bean in the same deployment unit. In particular, be
 careful when using the <context:component-scan> feature
 in combination with the deployment of Spring-based EJB3 session beans:
 Make sure that the EJB3 session beans are not autodetected as
 Spring-managed beans as well, using appropriate package restrictions.
Autowired, 
AutowiredAnnotationBeanPostProcessor, 
ContextSingletonBeanFactoryLocator, 
getBeanFactoryLocatorKey(java.lang.Object), 
AbstractEnterpriseBean.setBeanFactoryLocator(org.springframework.beans.factory.access.BeanFactoryLocator), 
AbstractEnterpriseBean.setBeanFactoryLocatorKey(java.lang.String)| Constructor Summary | |
|---|---|
| SpringBeanAutowiringInterceptor() | |
| Method Summary | |
|---|---|
|  void | autowireBean(javax.interceptor.InvocationContext invocationContext)Autowire the target bean after construction as well as after passivation. | 
| protected  void | configureBeanPostProcessor(AutowiredAnnotationBeanPostProcessor processor,
                           Object target)Template method for configuring the AutowiredAnnotationBeanPostProcessorused for autowiring. | 
| protected  void | doAutowireBean(Object target)Actually autowire the target bean after construction/passivation. | 
| protected  void | doReleaseBean(Object target)Actually release the BeanFactoryReference for the given target bean. | 
| protected  BeanFactory | getBeanFactory(Object target)Determine the BeanFactory for autowiring the given target bean. | 
| protected  BeanFactoryLocator | getBeanFactoryLocator(Object target)Determine the BeanFactoryLocator to obtain the BeanFactoryReference from. | 
| protected  String | getBeanFactoryLocatorKey(Object target)Determine the BeanFactoryLocator key to use. | 
| protected  BeanFactoryReference | getBeanFactoryReference(Object target)Determine the BeanFactoryReference for the given target bean. | 
|  void | releaseBean(javax.interceptor.InvocationContext invocationContext)Release the factory which has been used for autowiring the target bean. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
public SpringBeanAutowiringInterceptor()
| Method Detail | 
|---|
@PostConstruct
public void autowireBean(javax.interceptor.InvocationContext invocationContext)
                  throws Exception
invocationContext - the EJB3 invocation context
Exceptionprotected void doAutowireBean(Object target)
target - the target bean to autowire
protected void configureBeanPostProcessor(AutowiredAnnotationBeanPostProcessor processor,
                                          Object target)
AutowiredAnnotationBeanPostProcessor used for autowiring.
processor - the AutowiredAnnotationBeanPostProcessor to configuretarget - the target bean to autowire with this processorprotected BeanFactory getBeanFactory(Object target)
target - the target bean to autowire
null)getBeanFactoryReference(java.lang.Object)protected BeanFactoryReference getBeanFactoryReference(Object target)
The default implementation delegates to getBeanFactoryLocator(java.lang.Object)
 and getBeanFactoryLocatorKey(java.lang.Object).
target - the target bean to autowire
null)getBeanFactoryLocator(java.lang.Object), 
getBeanFactoryLocatorKey(java.lang.Object), 
BeanFactoryLocator.useBeanFactory(String)protected BeanFactoryLocator getBeanFactoryLocator(Object target)
The default implementation exposes Spring's default
 ContextSingletonBeanFactoryLocator.
target - the target bean to autowire
null)ContextSingletonBeanFactoryLocator.getInstance()protected String getBeanFactoryLocatorKey(Object target)
The default is null, indicating the single
 ApplicationContext defined in the locator. This must be overridden
 if more than one shared ApplicationContext definition is available.
target - the target bean to autowire
null for
 referring to the single ApplicationContext defined in the locator)
@PreDestroy
public void releaseBean(javax.interceptor.InvocationContext invocationContext)
                 throws Exception
invocationContext - the EJB3 invocation context
Exceptionprotected void doReleaseBean(Object target)
target - the target bean to release| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||