1717
1818import java .util .List ;
1919
20- import org .slf4j .Logger ;
21- import org .slf4j .LoggerFactory ;
2220import org .springframework .beans .factory .annotation .Autowired ;
23- import org .springframework .beans . factory . annotation . Qualifier ;
21+ import org .springframework .context . ApplicationContext ;
2422import org .springframework .context .annotation .Bean ;
2523import org .springframework .context .annotation .Configuration ;
2624import org .springframework .data .repository .support .DomainClassConverter ;
2725import org .springframework .data .web .PageableHandlerMethodArgumentResolver ;
2826import org .springframework .data .web .SortHandlerMethodArgumentResolver ;
27+ import org .springframework .format .FormatterRegistry ;
2928import org .springframework .format .support .FormattingConversionService ;
3029import org .springframework .web .method .support .HandlerMethodArgumentResolver ;
3130import org .springframework .web .servlet .config .annotation .WebMvcConfigurerAdapter ;
4039@ Configuration
4140class SpringDataWebConfiguration extends WebMvcConfigurerAdapter {
4241
43- private static final Logger LOGGER = LoggerFactory .getLogger (SpringDataWebConfiguration .class );
44-
45- @ Autowired (required = false )
46- @ Qualifier ("mvcConversionService" )
47- FormattingConversionService conversionService ;
42+ @ Autowired
43+ private ApplicationContext context ;
4844
4945 @ Bean
5046 public PageableHandlerMethodArgumentResolver pageableResolver () {
@@ -56,18 +52,25 @@ public SortHandlerMethodArgumentResolver sortResolver() {
5652 return new SortHandlerMethodArgumentResolver ();
5753 }
5854
59- @ Bean
60- public DomainClassConverter <FormattingConversionService > mvcDomainClassConverter () {
55+ /*
56+ * (non-Javadoc)
57+ * @see org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter#addFormatters(org.springframework.format.FormatterRegistry)
58+ */
59+ @ Override
60+ public void addFormatters (FormatterRegistry registry ) {
6161
62- if (conversionService == null ) {
62+ if (!(registry instanceof FormattingConversionService )) {
63+ return ;
64+ }
6365
64- LOGGER . warn ( "No default Spring MVC FormattingConversionService registered! Have you forgotten to "
65- + "use @EnableWebMvc or register a configuration class extending WebMvcConfigurationSupport?" );
66+ registerDomainClassConverterFor (( FormattingConversionService ) registry );
67+ }
6668
67- return null ;
68- }
69+ private void registerDomainClassConverterFor (FormattingConversionService conversionService ) {
6970
70- return new DomainClassConverter <FormattingConversionService >(conversionService );
71+ DomainClassConverter <FormattingConversionService > converter = new DomainClassConverter <FormattingConversionService >(
72+ conversionService );
73+ converter .setApplicationContext (context );
7174 }
7275
7376 /*
0 commit comments