# learn-spring **Repository Path**: natsukry/learn-spring ## Basic Information - **Project Name**: learn-spring - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-05 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring ## @Autowired 和 @Resource 的区别是什么? @Autowired 是 Spring 内置的注解,默认注入逻辑为先按类型(byType)匹配,若存在多个同类型 Bean,则再尝试按名称(byName)筛选。具体来说:优先根据接口 / 类的类型在 Spring 容器中查找匹配的 Bean。若只找到一个符合类型的 Bean,直接注入,无需考虑名称;若找到多个同类型的 Bean(例如一个接口有多个实现类),则会尝试通过属性名或参数名与 Bean 的名称进行匹配(默认 Bean 名称为类名首字母小写,除非通过 @Bean(name = "...") 或 @Component("...") 显式指定)。当一个接口存在多个实现类时:若属性名与某个 Bean 的名称一致,则注入该 Bean;若属性名与所有 Bean 名称都不匹配,会抛出 NoUniqueBeanDefinitionException,此时需要通过 @Qualifier 显式指定要注入的 Bean 名称。