diff --git a/core-tiger/src/main/java/org/springframework/ws/server/endpoint/annotation/Endpoint.java b/core-tiger/src/main/java/org/springframework/ws/server/endpoint/annotation/Endpoint.java index 2fbd57cd..b75166f3 100644 --- a/core-tiger/src/main/java/org/springframework/ws/server/endpoint/annotation/Endpoint.java +++ b/core-tiger/src/main/java/org/springframework/ws/server/endpoint/annotation/Endpoint.java @@ -22,21 +22,33 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.stereotype.Component; import org.springframework.ws.server.endpoint.mapping.AbstractAnnotationMethodEndpointMapping; import org.springframework.ws.soap.server.endpoint.mapping.SoapActionAnnotationMethodEndpointMapping; /** - * Marks a class as an endpoint. + * Indicates that an annotated class is an "Endpoint" (e.g. a web service endpoint). *

- * Instances of this class are typically picked up by an {@link AbstractAnnotationMethodEndpointMapping} implementation, - * such as {@link SoapActionAnnotationMethodEndpointMapping}. + * This annotation serves as a specialization of {@link Component @Component}, allowing for implementation classes to be + * autodetected through classpath scanning. Instances of this class are typically picked up by an {@link + * AbstractAnnotationMethodEndpointMapping} implementation, such as {@link SoapActionAnnotationMethodEndpointMapping}. * * @author Arjen Poutsma + * @see org.springframework.context.annotation.ClassPathBeanDefinitionScanner * @since 1.0.0 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented +@Component public @interface Endpoint { + /** + * The value may indicate a suggestion for a logical component name, to be turned into a Spring bean in case of an + * autodetected component. + * + * @return the suggested component name, if any + */ + String value() default ""; + }