Spring注入接口,接口多个实现类调用哪个实现类的三种方案

Spring注入接口,接口多个实现类调用哪个实现类的三种方案

代码所示:

··· @Autowired UserService userService ···
在这个接口有多个实现类的情况下三种方式定义调用实现类:

方法1:

··· `@Autowired 
	  UserService userServiceImpl_1` ···
在变量名中直接写成想要调用的那个实现类名称,名称规定为首字母小写

方法2

@Primary 注解,标注在实现类上,注解意思:优先使用本类。

方法3

结合使用:	
	只需要在注⼊的时候,额外通过另外⼀个注解@Qualifier来标识需要注⼊实现类的名字
	@Autowired 
	@Qualifier("userServiceImpl_1")
	UserService userService;

同理:@Resource跟方法三是一样的原理

方法一是根据类的BeanName在容器中跟beanId对比寻找,
方法二是直接表示用哪个。
方法三是直接根据beanId找全限定路径找类。
在这里推荐使用@Resource,方便快捷。

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