Fix auto-configuration order for Spring Data Rest
Update Rest, Hypermedia and HttpMessageConverter auto-configuration to ensure beans are created in the correct order. Prior to this commit the MappingJackson2HttpMessageConverter bean would not be created because Spring Data Rest's TypeConstrained versions had already been registered. Fixes gh-1729
This commit is contained in:
parent
b33bbd56e7
commit
2f03351cf6
|
@ -17,10 +17,12 @@
|
|||
package org.springframework.boot.autoconfigure.data.rest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
@ -48,6 +50,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
@ConditionalOnWebApplication
|
||||
@ConditionalOnMissingBean(RepositoryRestMvcConfiguration.class)
|
||||
@ConditionalOnClass(RepositoryRestMvcConfiguration.class)
|
||||
@AutoConfigureAfter(HttpMessageConvertersAutoConfiguration.class)
|
||||
public class RepositoryRestMvcAutoConfiguration {
|
||||
|
||||
@Configuration
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
|
||||
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
@ -52,7 +53,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
@Configuration
|
||||
@ConditionalOnClass({ Resource.class, RequestMapping.class, Plugin.class })
|
||||
@ConditionalOnWebApplication
|
||||
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class })
|
||||
@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class,
|
||||
HttpMessageConvertersAutoConfiguration.class })
|
||||
public class HypermediaAutoConfiguration {
|
||||
|
||||
@Configuration
|
||||
|
|
|
@ -20,11 +20,13 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
|
||||
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
@ -53,6 +55,7 @@ import com.google.gson.Gson;
|
|||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(HttpMessageConverter.class)
|
||||
@AutoConfigureAfter(JacksonAutoConfiguration.class)
|
||||
public class HttpMessageConvertersAutoConfiguration {
|
||||
|
||||
@Autowired(required = false)
|
||||
|
|
Loading…
Reference in New Issue