<context:component-scan base-package=“com.zoe.post,com.zoe.cust”/>
多个package的话,base-package之间用,隔开

@Service @Component 注释支持的前提是包扫描,通过扫描器扫描到有注解的类并封装成BeanDefinition对象
spring源码学习--注解加载bean实例化

包扫描的主要逻辑方法:org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse、
1、扫描路径.class后缀的文件
2、判断类上面是否有注释
3、GenericBeanDefinition genericBeanDefinition = newGenericBeanDefinition();
genericBeanDefinition.setBeanClass(BeanClass.class);
4、完成BeanDefinition注册
spring源码学习--注解加载bean实例化
约定大于配置:很多配置都默认了,不需要过多改和配置。

use-default-filters:默认扫描过滤器,默认true,默认的扫描@Service @Component ,非默认的话,可以自定义注释.

默认扫描,会把Component加进去,没有添加Service,为什么会扫描到Service,原因是Service和Component有继承关系

spring源码学习--注解加载bean实例化
spring源码学习--注解加载bean实例化

ConfigurationClassPostProcessor类来完成@Configuration @Bean 注解的扫描
CommonAnnotationBeanPostProcessor类来完成@PostContruct @PreDestroy @Resource 注解的扫描
spring源码学习--注解加载bean实例化

相关文章:

  • 2021-05-18
  • 2021-05-20
  • 2021-12-16
  • 1970-01-01
  • 2022-01-07
  • 2022-01-09
  • 2021-09-01
  • 2021-06-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案