Package org.appng.api.config
Class RestConfig
- java.lang.Object
-
- org.appng.api.config.RestConfig
-
- All Implemented Interfaces:
org.springframework.beans.factory.config.BeanFactoryPostProcessor
- Direct Known Subclasses:
RestTestConfig
@Configuration public class RestConfig extends Object implements org.springframework.beans.factory.config.BeanFactoryPostProcessor
AConfiguration
that adds aMappingJackson2HttpMessageConverter
and anObjectMapper
to the context, if not already present.
Also checks the context for JacksonModule
s and adds them to theObjectMapper
.
Additionally, modules for handling theseTemporal
-types are registered:OffsetDateTime
, usingDateTimeFormatter.ISO_OFFSET_DATE_TIME
LocalDate
, usingDateTimeFormatter.ISO_LOCAL_DATE
LocalTime
, usingDateTimeFormatter.ISO_LOCAL_TIME
LocalDateTime
, usingDateTimeFormatter.ISO_LOCAL_DATE_TIME
Also adds aHandlerMethodArgumentResolver
that can resolve the currentEnvironment
,Site
andApplication
.- Author:
- Matthias Müller
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RestConfig.SiteAwareHandlerMethodArgumentResolver
-
Constructor Summary
Constructors Constructor Description RestConfig()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addDateModules(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
org.springframework.http.converter.ByteArrayHttpMessageConverter
byteArrayHttpMessageConverter()
static List<org.springframework.web.method.support.HandlerMethodArgumentResolver>
getArgumentResolvers(org.springframework.context.ApplicationContext context)
protected <T extends Temporal>
com.fasterxml.jackson.databind.module.SimpleModulegetDateModule(Class<T> temporal, Function<String,T> parseFunction, DateTimeFormatter formatter)
static List<org.springframework.http.converter.HttpMessageConverter<?>>
getMessageConverters(org.springframework.context.ApplicationContext context)
protected <T> T
getPrimaryOrFirst(Map<String,T> beans, Map<String,Object> primaryBeans)
void
postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
RestConfig.SiteAwareHandlerMethodArgumentResolver
siteAwareHandlerMethodArgumentResolver(Site site, Application application, Environment environment)
-
-
-
Method Detail
-
getMessageConverters
public static List<org.springframework.http.converter.HttpMessageConverter<?>> getMessageConverters(org.springframework.context.ApplicationContext context)
-
getArgumentResolvers
public static List<org.springframework.web.method.support.HandlerMethodArgumentResolver> getArgumentResolvers(org.springframework.context.ApplicationContext context)
-
postProcessBeanFactory
public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) throws org.springframework.beans.BeansException
- Specified by:
postProcessBeanFactory
in interfaceorg.springframework.beans.factory.config.BeanFactoryPostProcessor
- Throws:
org.springframework.beans.BeansException
-
getPrimaryOrFirst
protected <T> T getPrimaryOrFirst(Map<String,T> beans, Map<String,Object> primaryBeans)
-
addDateModules
protected void addDateModules(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
-
getDateModule
protected <T extends Temporal> com.fasterxml.jackson.databind.module.SimpleModule getDateModule(Class<T> temporal, Function<String,T> parseFunction, DateTimeFormatter formatter)
-
byteArrayHttpMessageConverter
@Bean public org.springframework.http.converter.ByteArrayHttpMessageConverter byteArrayHttpMessageConverter()
-
siteAwareHandlerMethodArgumentResolver
@Bean @Lazy public RestConfig.SiteAwareHandlerMethodArgumentResolver siteAwareHandlerMethodArgumentResolver(Site site, Application application, Environment environment)
-
-