JAVA中@Autowired @Resoure @mapper @Component @service @Repository@controller @Bean的区别

@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搭配的方式,实现自动化装配。

  • 18
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值