@Autowired
@Autowired 是 Spring 框架提供的注解,用于自动装配 bean。Spring 容器会查找一个匹配的 bean 来自动装配到标注了该注解的属性上。如果找到多个类型匹配的 bean,可以通过 @Qualifier 注解来指定具体的 bean 名称。
@Resource
@Resource 是 Java 标准库提供的注解,功能与 @Autowired 类似,也用于自动装配。区别在于 @Resource 允许你通过名称来装配 bean,而 @Autowired 默认按类型装配。
@Mapper
@Mapper 是 MyBatis 框架提供的注解,用于标注接口,表示这个接口是一个 MyBatis 的 Mapper 接口。Spring Boot 在启动时会自动扫描这些接口,并为它们创建代理实现类,这样你就可以直接注入这些接口来使用。
@Component
@Component 是一个通用概念的注解,表示一个类是一个 Spring 组件。Spring 会扫描到这些注解,并将这些类作为 bean 加入到 Spring 容器中。其他特定的注解(如 @Service、@Repository 和 @Controller)实际上都是 @Component 的特殊形式。
@Service
@Service 用于标注业务逻辑层组件。它是一个特殊类型的 @Component,用于将业务逻辑层的类标记为 Spring 的一个 Bean。
@Controller
@Controller 用于标注 MVC 控制器。它也是一个特殊类型的 @Component,用于将 MVC 控制器层的类标记为 Spring 的一个 Bean。
@Repository
@Repository是 Spring 框架中的一个核心注解,主要用于标识数据访问层(DAO 层)的类。这个注解告诉 Spring 框架需要为标注的类创建实例,并将其纳入到 Spring 的上下文中进行统一管理。 与@Mapper作用相似
@Bean
@Bean 注解用于方法上,表示该方法将返回一个对象,这个对象应该注册为 Spring 应用上下文中的 bean。通常与配置类一起使用。
@Component 和 @Bean 是两种使用注解来定义bean的方式。@Component和@Bean的目的是一样的,都是注册bean到Spring容器中。两者都可以通过@Autowired装配
@Bean不能注释在类上,只能用于在配置类(@Configuration)中显式声明单个bean。而@Conpoment可以。但是装配第三方库中的组件时,在这种情况下,是没有办法在它的类上添加@Component注解的,这时候使用配置类@Configuration和@Bean搭配的方式,实现自动化装配。