spring中如果不配置component-scan,将无法认识@Controller、@Service、@Component。
<context:component-scan base-package="xxxx,xxx,xxx"/>注解作用:扫描包下的所有文件,如果文件里面包含上面的注解,则对此类进行实例化。专门用来干注解
component-scan实现流程:
总结:
0、根据namespaceuri读取配置文件,实例化处理类,注册解析类,调用namespacehandle.parse进行解析
1、扫描路径,.class后缀的文件, 除了扫描targent下的文件, 也会扫描jar包中的文件
2、判断类上是否有注解 , metadata
3、如果有注解,则需要实例化, new GenericBeanDefinition
4、BeanDefinition注册