Class DependencyInjectionAspectSupport
java.lang.Object
org.springframework.orm.hibernate.support.DependencyInjectionAspectSupport
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
DependencyInjectionInterceptorFactoryBean
public abstract class DependencyInjectionAspectSupport
extends Object
implements org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.BeanFactoryAware
Convenient superclass for aspects/persistence API
configuration classes that should be able to autowire
objects into a factory.
There are two ways of doing this: by mapping managed classes to prototype bean definitions in the factory; and by identifying classes of which instances should be autowired into the factory using the autowiring capables of AutowireCapableBeanFactory. If your managed class implements Spring lifecycle interfaces such as BeanFactoryAware or ApplicationContextAware, you must use the former method. With the latter method, only properties will be set, based on automatic satisfaction of dependencies from other beans (singleton or non-singleton) defined in the factory.
Could also use attributes on persistent classes to identify those eligible for autowiring, or even the prototype bean name.
- Since:
- 1.2
- Author:
- Rod Johnson
- See Also:
-
AutowireCapableBeanFactory
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
-
Field Summary
Modifier and TypeFieldDescriptionprotected List
List of Classprotected final org.apache.log4j.Logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAutowireByNameClass
(Class clazz) void
addAutowireByTypeClass
(Class clazz) void
addManagedClassToPrototypeMapping
(Class clazz, String beanName) final void
Check that mandatory properties were setprotected void
Subclasses can call this to autowire properties on an existing objectprotected Object
createAndConfigure
(Class clazz) Subclasses will call this to create an object of the requisite classReturn classes autowired by nameReturn classes autowired by typeprotected org.springframework.beans.factory.BeanFactory
Expose the owning bean factory to subclasses.int
Return a Map of managed classes to prototype namesvoid
setAutowireByNameClasses
(List autowireByNameClasses) Set the Classes or class names that will be autowired by namevoid
setAutowireByTypeClasses
(List autowireByTypeClasses) Set the Classes or class names that will be autowired by typevoid
setBeanFactory
(org.springframework.beans.factory.BeanFactory beanFactory) void
setDefaultAutowireMode
(int mode) Convenient property enabling autowiring of all instances.void
setManagedClassNamesToPrototypeNames
(Properties persistentClassBeanNames) Property key is class FQN, value is prototype name to use to obtain a new instanceprotected void
protected abstract void
Subclasses should implement this to validate their configuration
-
Field Details
-
log
protected final org.apache.log4j.Logger log -
autowireByTypeClasses
List of Class
-
-
Constructor Details
-
DependencyInjectionAspectSupport
public DependencyInjectionAspectSupport()
-
-
Method Details
-
getDefaultAutowireMode
public int getDefaultAutowireMode()- Returns:
- Returns the autowireAll.
-
setDefaultAutowireMode
public void setDefaultAutowireMode(int mode) Convenient property enabling autowiring of all instances. We might want this in an AspectJ aspect subclass, for example, relying on the AspectJ aspect to target the advice.- Parameters:
mode
- The autowireAll to set.
-
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) - Specified by:
setBeanFactory
in interfaceorg.springframework.beans.factory.BeanFactoryAware
-
getBeanFactory
protected org.springframework.beans.factory.BeanFactory getBeanFactory()Expose the owning bean factory to subclasses. Call only after initialization is complete.- Returns:
- the owning bean factory. Cannot be null in valid use of this class.
-
setAutowireByTypeClasses
Set the Classes or class names that will be autowired by type- Parameters:
autowireByTypeClasses
- list of Class or String classname
-
getAutowireByTypeClasses
Return classes autowired by type- Returns:
- list of Class
-
addAutowireByTypeClass
-
setAutowireByNameClasses
Set the Classes or class names that will be autowired by name- Parameters:
autowireByNameClasses
- list of Class or String classname
-
getAutowireByNameClasses
Return classes autowired by name- Returns:
- list of Class
-
addAutowireByNameClass
-
setManagedClassNamesToPrototypeNames
Property key is class FQN, value is prototype name to use to obtain a new instance- Parameters:
persistentClassBeanNames
-
-
getManagedClassToPrototypeNames
Return a Map of managed classes to prototype names- Returns:
- Map with key being FQN and value prototype bean name to use for that class
-
addManagedClassToPrototypeMapping
-
afterPropertiesSet
public final void afterPropertiesSet()Check that mandatory properties were set- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- See Also:
-
InitializingBean.afterPropertiesSet()
-
validateProperties
protected abstract void validateProperties()Subclasses should implement this to validate their configuration -
validateConfiguration
protected void validateConfiguration() -
autowireProperties
protected void autowireProperties(Object o) throws DependencyInjectionAspectSupport.NoAutowiringConfigurationForClassException, org.springframework.beans.BeansException Subclasses can call this to autowire properties on an existing object- Parameters:
o
-- Throws:
org.springframework.beans.BeansException
DependencyInjectionAspectSupport.NoAutowiringConfigurationForClassException
-
createAndConfigure
protected Object createAndConfigure(Class clazz) throws DependencyInjectionAspectSupport.NoAutowiringConfigurationForClassException Subclasses will call this to create an object of the requisite class- Parameters:
clazz
-- Returns:
- Throws:
DependencyInjectionAspectSupport.NoAutowiringConfigurationForClassException
-