@Target(value=TYPE)
 @Retention(value=RUNTIME)
 @Documented
 @Import(value=org.springframework.boot.web.servlet.ServletComponentScanRegistrar.class)
public @interface ServletComponentScan
filters, servlets, and listeners). Scanning is only performed when using an
 embedded web server.
 
 Typically, one of value, basePackages, or basePackageClasses
 should be specified to control the packages to be scanned for components. In their
 absence, scanning will be performed from the package of the class with the annotation.
WebServlet, 
WebFilter, 
WebListener| Modifier and Type | Optional Element and Description | 
|---|---|
| java.lang.Class<?>[] | basePackageClassesType-safe alternative to  basePackages()for specifying the packages to
 scan for annotated servlet components. | 
| java.lang.String[] | basePackagesBase packages to scan for annotated servlet components. | 
| java.lang.String[] | valueAlias for the  basePackages()attribute. | 
@AliasFor(value="basePackages") public abstract java.lang.String[] value
basePackages() attribute. Allows for more concise annotation
 declarations e.g.: @ServletComponentScan("org.my.pkg") instead of
 @ServletComponentScan(basePackages="org.my.pkg").@AliasFor(value="value") public abstract java.lang.String[] basePackages
value() is an
 alias for (and mutually exclusive with) this attribute.
 
 Use basePackageClasses() for a type-safe alternative to String-based
 package names.
public abstract java.lang.Class<?>[] basePackageClasses
basePackages() for specifying the packages to
 scan for annotated servlet components. The package of each class specified will be
 scanned.