spring 依赖注入的三种方式

@Autowired:构造器,参数,方法,属性;都是从容器中获取参数组件的值;

  1. set方法注入;
  2. 构造器注入;
  3. 作为Bean方法的参数注入;

例子:Boss 注入Car类

第一种、set方式注入

//Car类
package com.spring.bean;
@Component
public class Car {
	public Car() {
		System.out.println("car...constructor");
	}
}

//Boss类
package com.spring.bean;
//默认加在ioc容器中的组件,容器启动会调用无参构造器创建对象,再进行初始化赋值等操作
@Component
@Data
public class Boss {

	private Car car;

	public Car getCar() {
		return car;
	}

	//标注在方法,Spring容器创建当前对象,就会调用方法,完成赋值;
	//方法使用的参数,自定义类型的值从ioc容器中获取
	@Autowired
	public void setCar(Car car) {
		this.car = car;
	}
    //也可以这样写:public void setCar(@Autowired Car car) {
}

//配置类
@Configuration
@ComponentScan({com.spring.bean"})
public class MainConifgOfAutowired {

}

第二种、构造器方法注入

如果组件只有一个有参构造器,这个有参构造器的@Autowired可以省略,参数位置的组件还是可以自动从容器中获取;

@Component
@Data
public class Boss {

	private Car car;

	@Autowired
	public Boss(Car car) {
		this.car = car;
	}
    //也可以这样写:public Boss(@Autowired Car car) {
    //也可以不写 @Autowired
}

第三种、作为Bean的参数注入

//@Bean标注的方法创建对象的时候,方法参数的值从容器中获取
@Bean
public Boss color(Car car){
    Boss boss = new Boss();
    boss.setCar(car);
    return boss;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值