Package org.restlet.ext.spring
Class SpringFinder
- java.lang.Object
-
- org.restlet.Restlet
-
- org.restlet.resource.Finder
-
- org.restlet.ext.spring.SpringFinder
-
- All Implemented Interfaces:
org.restlet.Uniform
- Direct Known Subclasses:
SpringBeanFinder
public class SpringFinder extends org.restlet.resource.Finder
Finder that is specialized for easier usage by Spring wiring services. The idea is to create a singleton Spring bean based on that SpringFinder and configure it using Spring's "lookup-method" element to return instances of a "prototype" bean forcreate()
. Finally, attach the SpringFinder to your Router. When thecreate()
method is invoked, a new instance of your prototype bean will be created and returned. A sample XML for "lookup-method":<bean id="myFinder" class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="myResource"/> </bean> <bean id="myResource" class="com.mycompany.rest.resource.MyResource" scope="prototype"> <property name="aProperty" value="anotherOne"/> <property name="oneMore" value="true"/> </bean>
Note that the Code Generation Library (cglib) will be required in order to use the Spring's lookup method mechanism.
Concurrency note: instances of this class or its subclasses can be invoked by several threads at the same time and therefore must be thread-safe. You should be especially careful when storing state in member variables.- Author:
- Jerome Louvel
- See Also:
- Spring home page
-
-
Constructor Summary
Constructors Constructor Description SpringFinder()
Constructor.SpringFinder(org.restlet.Context context)
Constructor.SpringFinder(org.restlet.Context context, java.lang.Class<? extends org.restlet.resource.ServerResource> targetClass)
Constructor.SpringFinder(org.restlet.Restlet restlet)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.restlet.resource.ServerResource
create()
Creates a new instance of theServerResource
class designated by the "targetClass" property.org.restlet.resource.ServerResource
create(java.lang.Class<? extends org.restlet.resource.ServerResource> targetClass, org.restlet.Request request, org.restlet.Response response)
Calls thecreate()
method that can be configured as a lookup method in Spring.org.restlet.resource.ServerResource
create(org.restlet.Request request, org.restlet.Response response)
-
Methods inherited from class org.restlet.resource.Finder
createFinder, find, getTargetClass, handle, setTargetClass, toString
-
Methods inherited from class org.restlet.Restlet
createFinder, finalize, getApplication, getAuthor, getContext, getDescription, getFinderClass, getLogger, getName, getOwner, handle, handle, handle, isStarted, isStopped, setAuthor, setContext, setDescription, setFinderClass, setName, setOwner, start, stop
-
-
-
-
Constructor Detail
-
SpringFinder
public SpringFinder()
Constructor.
-
SpringFinder
public SpringFinder(org.restlet.Context context)
Constructor.- Parameters:
context
- The parent context.
-
SpringFinder
public SpringFinder(org.restlet.Context context, java.lang.Class<? extends org.restlet.resource.ServerResource> targetClass)
Constructor.- Parameters:
context
- The context.targetClass
- The target resource class.
-
SpringFinder
public SpringFinder(org.restlet.Restlet restlet)
Constructor.- Parameters:
restlet
- The parent Restlet.
-
-
Method Detail
-
create
public org.restlet.resource.ServerResource create()
Creates a new instance of theServerResource
class designated by the "targetClass" property. This method is intended to be configured as a lookup method in Spring.- Returns:
- The created resource or null.
-
create
public org.restlet.resource.ServerResource create(java.lang.Class<? extends org.restlet.resource.ServerResource> targetClass, org.restlet.Request request, org.restlet.Response response)
Calls thecreate()
method that can be configured as a lookup method in Spring. Overriding this method was necessary for direct calls to it, for example by unit tests.- Overrides:
create
in classorg.restlet.resource.Finder
-
create
public org.restlet.resource.ServerResource create(org.restlet.Request request, org.restlet.Response response)
- Overrides:
create
in classorg.restlet.resource.Finder
-
-