接口:
public interface UserService{
public void findUser();
}
实现类A:
@Service
public class UserServiceImplA implements UserService {
public void findUser(){
System.out.print("UserServiceImplA");
}
}
实现类B:
@Service
public class UserServiceImplB implements UserService {
public void findUser(){
System.out.print("UserServiceImplB");
}
}
指定调用实现类方法:
1、使用类名指定
@Controller
public class UserController{
@Autowrited
private UserService userServiceImplA;//默认依据类名指定,此处指定为UserServiceImplA实现类
@RequestMapping("/findUser")
public void findUser(){
userServiceImplA.findUser();
}
}
2、使用@Autowired结合@Qualifier指定实现类
@Controller
public class UserController{
@Autowrited
@Qualifier("userServiceImplA")
private UserService userService;
@RequestMapping("/findUser")
public void findUser(){
userService.findUser();
}
}
3、使用@Resource注入,根据@Service指定名称区分,此处实现类的注解@Service需要指定名称
@Service("userA")
public class UserServiceImplA implements UserService {
public void findUser(){
System.out.print("UserServiceImplA");
}
}
@Service("userB")
public class UserServiceImplB implements UserService {
public void findUser(){
System.out.print("UserServiceImplB");
}
}
@Controller
public class UserController{
@Resource(name = "userA")
private UserService userService;
@RequestMapping("/findUser")
public void findUser(){
userService.findUser();
}
}