Annotation Interface EnableWs


Adding this annotation to an @Configuration class imports the Spring Web Services configuration from WsConfigurationSupport, for example:

 @Configuration
 @EnableWs
 @ComponentScan(basePackageClasses = MyConfiguration.class)
 public class MyConfiguration {

 }

Customize the imported configuration by implementing the WsConfigurer interface and overriding individual methods:


 @Configuration
 @EnableWs
 @ComponentScan(basePackageClasses = MyConfiguration.class)
 public class MyConfiguration implements WsConfigurer {

     @Override
     public void addInterceptors(List<EndpointInterceptor> interceptors) {
         interceptors.add(new MyInterceptor());
     }

     @Override
     public void addArgumentResolvers(List<MethodArgumentResolver> argumentResolvers) {
         argumentResolvers.add(new MyArgumentResolver());
     }

 }

Note: only one @Configuration class may have the @EnableWs annotation to import the Spring Web Services configuration. There can however be multiple @Configuration classes implementing WsConfigurer in order to customize the provided configuration.

If WsConfigurer does not expose some more advanced setting that needs to be configured, consider removing the @EnableWs annotation and extending directly from WsConfigurationSupport or DelegatingWsConfiguration, for example:


 @Configuration
 @ComponentScan(basePackageClasses = { MyConfiguration.class })
 public class MyConfiguration extends WsConfigurationSupport {

     @Override
     public void addInterceptors(List<EndpointInterceptor> interceptors) {
         interceptors.add(new MyInterceptor());
     }

     @Bean
     @Override
     public PayloadRootAnnotationMethodEndpointMapping payloadRootAnnotationMethodEndpointMapping() {
         // Create or delegate to "super" to create and
         // customize properties of PayloadRootAnnotationMethodEndpointMapping
     }
 }
Since:
2.2
See Also: