org.apache.wicket.spring.injection.annot
Class AnnotProxyFieldValueFactory

java.lang.Object
  extended by org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory
All Implemented Interfaces:
org.apache.wicket.injection.IFieldValueFactory

public class AnnotProxyFieldValueFactory
extends java.lang.Object
implements org.apache.wicket.injection.IFieldValueFactory

IFieldValueFactory that uses LazyInitProxyFactory to create proxies for Spring dependencies based on the SpringBean annotation applied to a field. This class is usually used by the AnnotSpringInjector to inject objects with lazy init proxies. However, this class can be used on its own to create proxies for any field decorated with a SpringBean annotation.

Example:

 IFieldValueFactory factory = new AnnotProxyFieldValueFactory(contextLocator);
 field = obj.getClass().getDeclaredField("dependency");
 IDependency dependency = (IDependency)factory.getFieldValue(field, obj);
 
In the example above the dependency object returned is a lazy init proxy that will look up the actual IDependency bean from spring context upon first access to one of the methods.

This class will also cache any produced proxies so that the same proxy is always returned for the same spring dependency. This helps cut down on session size beacause proxies for the same dependency will not be serialized twice.

Author:
Igor Vaynberg (ivaynberg), Istvan Devai
See Also:
LazyInitProxyFactory, SpringBean, SpringBeanLocator

Constructor Summary
AnnotProxyFieldValueFactory(ISpringContextLocator contextLocator)
           
 
Method Summary
 java.lang.Object getFieldValue(java.lang.reflect.Field field, java.lang.Object fieldOwner)
           
 void setFailFast(boolean failFast)
           
 boolean supportsField(java.lang.reflect.Field field)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AnnotProxyFieldValueFactory

public AnnotProxyFieldValueFactory(ISpringContextLocator contextLocator)
Parameters:
contextLocator - spring context locator
Method Detail

getFieldValue

public java.lang.Object getFieldValue(java.lang.reflect.Field field,
                                      java.lang.Object fieldOwner)
Specified by:
getFieldValue in interface org.apache.wicket.injection.IFieldValueFactory
See Also:
IFieldValueFactory.getFieldValue(java.lang.reflect.Field, java.lang.Object)

setFailFast

public void setFailFast(boolean failFast)
Parameters:
failFast - true if the locator fails if a bean can't be located

supportsField

public boolean supportsField(java.lang.reflect.Field field)
Specified by:
supportsField in interface org.apache.wicket.injection.IFieldValueFactory
See Also:
IFieldValueFactory.supportsField(java.lang.reflect.Field)


Copyright © 2004-2008 Apache Software Foundation. All Rights Reserved.