@ComponentScan
会为您提供一个包含@Component
注释的所有类的列表(或@Service
/ @Repository
)。为此,我想他们使用反射来枚举包中的所有类,并找到带有该注释的类。
但是根据other StackOverflow answers,由于ClassLoader
的工作方式,您无法可靠地枚举包中的所有类。那么@ComponentScan
似乎如何设法实现这一目标呢?
答案 0 :(得分:3)
@ComponentScan
的工作方式不同。工作流程很快就会出现:
Resource
对象来自Spring源代码的类:
ComponentScanAnnotationParser
AnnotationConfigUtils
ClassPathBeanDefinitionScanner
BeanDefinitionReaderUtils
DefaultListableBeanFactory