public class SpringBeanProcessor extends Object implements org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.context.event.SmartApplicationListener
The processor will register any bean annotated with @Path or @Provider into the Resteasy framework.
It also sets up Registry and ResteasyProviderFactory to be autowirable via @Autowire in Controllers/service layers.
There's quite a bit of spring integration functionality under the covers:
Modifier and Type | Class and Description |
---|---|
protected class |
SpringBeanProcessor.ResteasyBeanPostProcessor |
Modifier and Type | Field and Description |
---|---|
protected ResteasyDeployment |
deployment |
protected Dispatcher |
dispatcher |
protected ResteasyProviderFactory |
providerFactory |
protected Set<String> |
providerNames |
protected Registry |
registry |
protected Map<String,SpringResourceFactory> |
resourceFactories |
protected Set<String> |
resourceFactoryNames |
Constructor and Description |
---|
SpringBeanProcessor() |
SpringBeanProcessor(Dispatcher dispatcher) |
SpringBeanProcessor(Dispatcher dispatcher,
Registry registry,
ResteasyProviderFactory providerFactory) |
SpringBeanProcessor(ResteasyDeployment deployment) |
Modifier and Type | Method and Description |
---|---|
Dispatcher |
getDispatcher() |
int |
getOrder() |
String |
getPropertyValue(org.springframework.beans.MutablePropertyValues registrationPropertyValues,
String propertyName) |
ResteasyProviderFactory |
getProviderFactory() |
Registry |
getRegistry() |
void |
onApplicationEvent(org.springframework.context.ApplicationEvent event)
Register all of the resources into RESTEasy only when Spring finishes it's
life-cycle and the spring singleton bean creation is completed.
|
void |
postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
This method keeps track of @Provider and resources for future use.
|
protected Class<?> |
processBean(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory,
List<String> dependsOnProviders,
String name,
org.springframework.beans.factory.config.BeanDefinition beanDef)
Process a single @Provider or a single resource.
|
void |
setDispatcher(Dispatcher dispatcher) |
void |
setOrder(int order) |
void |
setProviderFactory(ResteasyProviderFactory providerFactory) |
void |
setRegistry(Registry registry) |
boolean |
supportsEventType(Class<? extends org.springframework.context.ApplicationEvent> eventType) |
boolean |
supportsSourceType(Class<?> sourceType) |
protected Registry registry
protected ResteasyProviderFactory providerFactory
protected Dispatcher dispatcher
protected ResteasyDeployment deployment
protected Map<String,SpringResourceFactory> resourceFactories
public SpringBeanProcessor(ResteasyDeployment deployment)
public SpringBeanProcessor(Dispatcher dispatcher)
public SpringBeanProcessor(Dispatcher dispatcher, Registry registry, ResteasyProviderFactory providerFactory)
public SpringBeanProcessor()
public Registry getRegistry()
public void setRegistry(Registry registry)
public ResteasyProviderFactory getProviderFactory()
public void setProviderFactory(ResteasyProviderFactory providerFactory)
public Dispatcher getDispatcher()
public void setDispatcher(Dispatcher dispatcher)
public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) throws org.springframework.beans.BeansException
This method keeps track of @Provider and resources for future use. It also registers the RESTEasy Registry, ProviderFactry, and Dispatcher for @Autowire injection.
Beyond tracking, this will ensure that non-MessageBody(Reader|Writer) @Providers are created by Spring before any resources by having the resources "depends-on" the @Providers.
postProcessBeanFactory
in interface org.springframework.beans.factory.config.BeanFactoryPostProcessor
beanFactory
- bean factoryorg.springframework.beans.BeansException
protected Class<?> processBean(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory, List<String> dependsOnProviders, String name, org.springframework.beans.factory.config.BeanDefinition beanDef)
beanFactory
- bean factorydependsOnProviders
- dependent providers listname
- bean namebeanDef
- bean definitionpublic String getPropertyValue(org.springframework.beans.MutablePropertyValues registrationPropertyValues, String propertyName)
public void onApplicationEvent(org.springframework.context.ApplicationEvent event)
onApplicationEvent
in interface org.springframework.context.ApplicationListener<org.springframework.context.ApplicationEvent>
event
- application eventpublic int getOrder()
getOrder
in interface org.springframework.context.event.SmartApplicationListener
getOrder
in interface org.springframework.core.Ordered
public void setOrder(int order)
public boolean supportsEventType(Class<? extends org.springframework.context.ApplicationEvent> eventType)
supportsEventType
in interface org.springframework.context.event.SmartApplicationListener
public boolean supportsSourceType(Class<?> sourceType)
supportsSourceType
in interface org.springframework.context.event.SmartApplicationListener
Copyright © 2019 JBoss by Red Hat. All rights reserved.