我这里指示三种方式:
一、Controller中注入service的时候使用@Autowired自动注入,@Qualifier("实现类名首字母小写")
来注入。
// 接口
public interface XxxxService {
public String xxxx();
}
// 实现类用
@Service
public class XxxxServiceImpl implements XxxxService {
@Override
public String xxxx() {
// 具体处理逻辑
return "xxxx";
}
}
@Service
public class YyyyServiceImpl implements XxxxService {
@Override
public String yyyy() {
// 具体处理逻辑
return "yyyy";
}
}
// Controller 中注入service 根据beanId(类名首字母小写) -> xxxxServiceImpl
@Autowired
@Qualifier("xxxxServiceImpl")
private XxxxService xxxxService;
二、Controller中注入service的时候使用@Resource(type = 类名.class)
来注入。
// 接口
public interface XxxxService {
public String xxxx();
}
// 实现类用
@Service
public class XxxxServiceImpl implements XxxxService {
@Override
public String xxxx() {
// 具体处理逻辑
return "xxxx";
}
}
@Service
public class YyyyServiceImpl implements XxxxService {
@Override
public String yyyy() {
// 具体处理逻辑
return "yyyy";
}
}
// Controller 中注入service
@Resource(type = XxxxServiceImpl.class)
private XxxxService xxxxService;
三、每个service的impl使用 @Service(“名称”)指定名称,Controller中注入service的时候使用@Resource(name="名称")注入。
// 接口
public interface XxxxService {
public String xxxx();
}
// 实现类用
@Service("xxxxService")
public class XxxxServiceImpl implements XxxxService {
@Override
public String xxxx() {
// 具体处理逻辑
return "xxxx";
}
}
@Service("yyyyService")
public class YyyyServiceImpl implements XxxxService {
@Override
public String yyyy() {
// 具体处理逻辑
return "yyyy";
}
}
// Controller 中注入service 根据beanId(@Service括号中的字符串) -> xxxxService
@Resource(name="xxxxService")
private XxxxService xxxxService;