接口定义
public interface UserService {
/**
* Gets name.
*
* @return the name
*/
String getName();
}
bean定义
bean名称标识:userService
@Service("userService")
public class UserServiceImpl implements UserService {
@Override
public String getName() {
return "name";
}
}
bean名称标识:userService2
@Service("userService2")
public class UserService2Impl implements UserService {
@Override
public String getName() {
return "name2";
}
}
set方法注入
@Service
public class MergeServiceImpl implements MergeService {
@Autowired
UserService userService;
UserService userService2;
@Autowired
public void setUserService2(@Qualifier("userService2") UserService userService) {
this.userService2 = userService;
}
@Override
public String demo() {
String name = userService2.getName();
return userService.getName();
}
}
注解注入
建议使用@Qualifier指定bean名称
@Service
public class MergeServiceImpl implements MergeService {
@Autowired
private UserService userService;
@Autowired
@Qualifier("userService2")
private UserService userService2;
@Override
public String demo() {
String name = userService2.getName();
return userService.getName();
}
}
或让spring boot自动按名称注入
@Service
public class MergeServiceImpl implements MergeService {
@Autowired
private UserService userService;
@Autowired
private UserService userService2;
@Override
public String demo() {
String name = userService2.getName();
return userService.getName();
}
}
构造函数注入
@Service
public class MergeServiceImpl implements MergeService {
@Autowired
private UserService userService;
private UserService userService2;
public MergeServiceImpl(@Qualifier("userService2") UserService userService2) {
this.userService2 = userService2;
}
@Override
public String demo() {
String name = userService2.getName();
return userService.getName();
}
}