Spring 用来自动装配的,@Autowired 自动注入 当一个组件中需要另一个组件的时候,只需要在另一个组件上加上@Autowired 就可以获取到组件了
@Service
public class MyService {
//@Qualifier("yellow")
@Autowired(required = false)
Yellow yellow2;
public String sayHello(String name){
System.out.println(yellow2);
return "hello"+name;
}
}
/**
* @Autowired 自动注入 当一个组件中需要另一个组件的时候,只需要在另一个组件上加上@Autowired 就可以获取到组件了
*
* 1) 优先按照类型去容器中找对应的组件 Yellow.class; applicationContext.getBean(Yellow.class);
* public class MyService {
@Autowired
Yellow yellow;
}
*
* 2) 如果组件有多个就根据组件的id去容器里面找applicationContext.getBean("yellow")
*
* 3) 可以使用@Qualifier("yellow") 来明确的指定 需要注入的组件id 而不是 使用属性名来注入
*
* 4) 自动装配默认一定要将属性赋值好的 如果没有就报错,可以使用 @Autowired(required = false) 来设置属性能装上就装上没有装上
*
* 就拉到
*
* 5)@Primary 这注解让spring进行自动装配的时候默认使用首选的bean,也可以使用 @Qualifier 来指定bean
*
* 使用了@Primary 组件的属性就随便写了
* @Autowired(required = false)
* Yellow yellow3;
*
*/
@Configuration
public class SpringBeanInfo {
//@Primary
@Bean("yellow2")
public Yellow getYellow(){
Yellow yellow = new Yellow();
yellow.setNum(2);
return yellow;
};
}
原文:https://www.cnblogs.com/gaohq/p/14902195.html