Spring 內部工具 : ClassPathBeanDefinitionScanner -- Bean定義掃描
阿新 • • 發佈:2019-01-12
ClassPathBeanDefinitionScanner
是一個從指定包內掃描所有bean
定義的Spring
工具。
工作時,它接收一組包的名稱,然後在這些包內掃描所有的類,查詢其中符合條件的bean
元件定義並將這些bean
元件定義註冊到容器。這些bean
定義註冊到容器時具體使用的類為ScannedGenericBeanDefinition
,這是Spring
bean
定義模型介面BeanDefinition
的一個具體實現類,針對掃描得到的bean
定義。
具體來講,預設情況下,該工具類僅僅關注帶有如下註解的類 :
@Component
@Repository
@Service
@Controller
@RestController
@ManagedBean
(Java EE 6
)@Named
(JSR-330
)
呼叫者也可以通過新增包含引數includeFilter
告訴該工具類考慮應用了其他註解的類。
當然也並不是每個帶有上面註解之一的類就會被認為是符合條件的,該工具類也會考慮呼叫者提供的排除引數excludeFilter
。
該工具類的典型應用是被
ComponentScanAnnotationParser
使用。