<context:component-scan base-package=“com.zoe.post,com.zoe.cust”/>
多个package的话,base-package之间用,隔开
@Service @Component 注释支持的前提是包扫描,通过扫描器扫描到有注解的类并封装成BeanDefinition对象
包扫描的主要逻辑方法:org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse、
1、扫描路径.class后缀的文件
2、判断类上面是否有注释
3、GenericBeanDefinition genericBeanDefinition = newGenericBeanDefinition();
genericBeanDefinition.setBeanClass(BeanClass.class);
4、完成BeanDefinition注册
约定大于配置:很多配置都默认了,不需要过多改和配置。
use-default-filters:默认扫描过滤器,默认true,默认的扫描@Service @Component ,非默认的话,可以自定义注释.
默认扫描,会把Component加进去,没有添加Service,为什么会扫描到Service,原因是Service和Component有继承关系
ConfigurationClassPostProcessor类来完成@Configuration @Bean 注解的扫描
CommonAnnotationBeanPostProcessor类来完成@PostContruct @PreDestroy @Resource 注解的扫描
来源:CSDN
作者:奋起的王小二
链接:https://blog.csdn.net/weixin_37971188/article/details/104311584