@ComponentScan是Spring框架中的注解之一,用于指示Spring在哪些包下查找需要注册为Bean的组件,以及被其他组件依赖的组件。通过使用@ComponentScan注解,我们可以避免在配置文件中逐个定义Bean对象的繁琐操作,实现快速装配Bean,并将它们自动注册到Spring容器中。
具体来说,@ComponentScan注解具有以下特点:
可指定扫描包范围:@ComponentScan注解可以指定需要扫描的“base package”范围。默认情况下,Spring会扫描当前类所在的包和子包中所有的组件。
注解扫描过滤规则:@ComponentScan注解提供了多种策略来过滤不需要注册为Bean的组件。如excludeFilters和includeFilters等,可以根据正则表达式、注解类型等条件来过滤组件。
默认装配规则:当Spring扫描组件时,它会默认查找标记了@Component、@Service、@Repository和@Controller等注解的类,并将其注册为Bean。如果要扫描其他注解或自定义注解,则需要使用@ComponentScan的includeFilters属性进行指定。
配置类使用:@ComponentScan注解通常与其他注解配合使用,如@Configuration、@EnableAutoConfiguration、@SpringBootApplication等注解可以与@ComponentScan注解结合使用,实现更方便的配置。