@Resource和@Autowired的区别?
- @Autowire 和 @Resource都可以用来装配bean。@Autowired是Spring定义的注解,而@Resource是idk的注解
- @Autowire 默认按类型装配,如果找到了判断是否找到一个bean,如果是只有一人bean进行自动装配。如果存在多个bean的情况判断是否配置了Qualifier,如果配置了那么按照Qualifier参数查找bean如果找到进行自动装配,如果没有配置Qualifier,按照名称查找bean。默认情况下必须要求依赖对象必须存在,如果要允许 null 值可以设置它的 required 属性为 false。
- @Resource 默认按名称装配,当找不到与名称匹配的 bean 时才按照类型进行装配
@Component 和@Bean 的区别?
- 作用对象不同: @Component 注解作用于类,而 @Bean 注解作用于方法
- @Component 通常是通过@ComponentScan扫描路径自动装配到 Spring 容器中
- @Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean。当我们引用第三方库中的类需要装配到Spring 容器时,只能通过 @Bean 来实现。