@Retention(value=RUNTIME) @Target(value=TYPE) @Documented @Import(value=DelegatingWsConfiguration.class) public @interface EnableWs
@Configuration
class to have the Spring
Web Services configuration defined in WsConfigurationSupport
imported. For
instance:
@Configuration @EnableWs @ComponentScan(basePackageClasses = { MyConfiguration.class }) public class MyWsConfiguration { }
Customize the imported configuration by implementing the
WsConfigurer
interface or more likely by extending the
WsConfigurerAdapter
base class and overriding individual methods:
@Configuration @EnableWs @ComponentScan(basePackageClasses = { MyConfiguration.class }) public class MyConfiguration extends WsConfigurerAdapter { @Override public void addInterceptors(List<EndpointInterceptor> interceptors) { interceptors.add(new MyInterceptor()); } @Override public void addArgumentResolvers(List<MethodArgumentResolver> argumentResolvers) { argumentResolvers.add(new MyArgumentResolver()); } // More overridden methods ... }
If the customization options of WsConfigurer
do not expose
something you need to configure, consider removing the @EnableWs
annotation and extending directly from WsConfigurationSupport
overriding selected @Bean
methods:
@Configuration @ComponentScan(basePackageClasses = { MyConfiguration.class }) public class MyConfiguration extends WsConfigurationSupport { @Override public void addInterceptors(List<EndpointInterceptor> interceptors) { interceptors.add(new MyInterceptor()); } @Bean @Override public DefaultMethodEndpointAdapter defaultMethodEndpointAdapter() { // Create or delegate to "super" to create and // customize properties of DefaultMethodEndpointAdapter } }
WsConfigurer
,
WsConfigurerAdapter
,
WsConfigurationSupport