1. 程式人生 > >22、自動裝配-方法、構造器位置的自動裝配

22、自動裝配-方法、構造器位置的自動裝配

22、自動裝配-方法、構造器位置的自動裝配

22.1 @Autowired 標註在方法上

  • 標註在方法上,Spring容器建立當前物件,就會呼叫方法,完成賦值
  • 方法使用的引數,自定義型別的值從IOC容器中獲取
@Autowired
public void setCar(Car car) {
    this.car = car;
}

22.2 @Autowired 標註在構造器

  • 預設加在IOC容器中的元件,容器啟動會呼叫無參構造器建立物件,再進行賦值操作
  • 構造器也是從IOC容器中獲取
  • 如果元件只有一個有參構造器,這個有參構造器的@Autowired可以省略,也是自動從IOC容器中獲取
@Autowired
public Boss(Car car) {
    this.car = car;
    System.out.println("Boss 的有參構造器...");
}

22.3 @Autowired 標註在引數上

  • 引數也是從IOC容器中獲取
  • @Bean+方法引數;引數從容器中獲取,可以省略@Autowired
public Boss(@Autowired Car car) {
    this.car = car;
    System.out.println("Boss 的有參構造器...");
}
@Bean
public Color color(@Autowired Car car) {
    return new Color(car);
}