一、@ComponentScan注解作用:(扫描指定注解的类注册到IOC容器中)

  • @ComponentScan用于类或接口上主要是指定扫描路径,spring会把指定路径下带有指定注解的类注册到IOC容器中。
  • 会被自动装配的注解包括@Controller、@Service、@Component、@Repository等等。
  • 其作用等同于<context:component-scan base-package="com.maple.learn" />配置。

 

二、@ComponentScan使用

常用属性如下:

  • basePackages、value:指定扫描路径,如果为空则以@ComponentScan注解的类所在的包为基本的扫描路径
  • basePackageClasses:指定具体扫描的类
  • includeFilters:指定满足Filter条件的类
  • excludeFilters:指定排除Filter条件的类
  • includeFilters和excludeFilters 的FilterType可选:ANNOTATION=注解类型默认、ASSIGNABLE_TYPE(指定固定类)、ASPECTJ(ASPECTJ类型)、REGEX(正则表达式)、CUSTOM(自定义类型),自定义的Filter需要实现TypeFilter接口

 

三、@ComponentScan的常见的配置如下:

@ComponentScan(value="com.maple.learn",
   excludeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class)},
   includeFilters = {@ComponentScan.Filter(type=FilterType.ANNOTATION,classes={Controller.class})}
        )
public class SampleClass{
   ……

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐