001/* 002 * Copyright 2002-2019 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * https://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.springframework.web.socket.config.annotation; 018 019import java.lang.annotation.Documented; 020import java.lang.annotation.ElementType; 021import java.lang.annotation.Retention; 022import java.lang.annotation.RetentionPolicy; 023import java.lang.annotation.Target; 024 025import org.springframework.context.annotation.Import; 026 027/** 028 * Add this annotation to an {@code @Configuration} class to configure 029 * processing WebSocket requests. A typical configuration would look like this: 030 * 031 * <pre class="code"> 032 * @Configuration 033 * @EnableWebSocket 034 * public class MyWebSocketConfig { 035 * 036 * } 037 * </pre> 038 * 039 * <p>Customize the imported configuration by implementing the 040 * {@link WebSocketConfigurer} interface: 041 * 042 * <pre class="code"> 043 * @Configuration 044 * @EnableWebSocket 045 * public class MyConfiguration implements WebSocketConfigurer { 046 * 047 * @Override 048 * public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { 049 * registry.addHandler(echoWebSocketHandler(), "/echo").withSockJS(); 050 * } 051 * 052 * @Override 053 * public WebSocketHandler echoWebSocketHandler() { 054 * return new EchoWebSocketHandler(); 055 * } 056 * } 057 * </pre> 058 * 059 * @author Rossen Stoyanchev 060 * @since 4.0 061 */ 062@Retention(RetentionPolicy.RUNTIME) 063@Target(ElementType.TYPE) 064@Documented 065@Import(DelegatingWebSocketConfiguration.class) 066public @interface EnableWebSocket { 067}