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