Srping @Qualifier注解

当一个注入接口,有多个实现类时,使用@Autowire,启动就会报错。@Qualifier就是解决这种情况的

***************************
APPLICATION FAILED TO START
***************************

Description:

Field animal in com.hongcj.starterdemo.controller.TestController required a single bean, but 2 were found:
	- lion: defined in file [/Users/mac/IdeaProjects/starter-demo/target/classes/com/hongcj/starterdemo/service/Lion.class]
	- tiger: defined in file [/Users/mac/IdeaProjects/starter-demo/target/classes/com/hongcj/starterdemo/service/Tiger.class]


Action:

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

解决

    @Qualifier("tiger")
    @Autowired
    private Animal animal;

如果没有实现类,则

    @Autowired(required = false)
    private Animal animal;

你可能感兴趣的:(Spring,java,spring)