@Bean 和 @Autowired

本文解析了Spring框架中@Bean和@Autowired注解的功能差异。@Bean用于声明一个类的实例,指示Spring容器管理该实例并提供给需要的地方;而@Autowired则用于自动装配,即在需要该类实例的地方,由Spring容器自动注入之前通过@Bean声明的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Bean 和 @Autowired 做了两件完全不同的事情:

  1. @Bean 告诉 Spring:“这是这个类的一个实例,请保留它,并在我请求时将它还给我”。
  2. @Autowired 说:“请给我一个这个类的实例,例如,一个我之前用@Bean注释创建的实例”。
@SpringBootApplication
public class Application {

  @Autowired
  BookingService bookingService;

  @Bean
  BookingService bookingService() {
    return new BookingService();
  }

  public static void main(String[] args) {
    bookingService.book("Alice", "Bob", "Carol");
  }
}

在本例中,@Bean 注释为 Spring 提供了 BookingService, @Autowired 使用了它。这可能是一个稍微没有意义的示例,因为你在同一个类中使用这些,但是如果您在一个类中定义了@Bean,而在另一个类中定义了@Autowired,那么它就非常有用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值