现象
Service下有接口
1
2
3
4
5
|
@Service
public interface Common {
String a = "a";
void sout(String s);
}
|
和实现关系
1
2
3
4
5
6
7
8
|
@Service
public class AImpl implements Common{
@Override
public void sout(String s) {
System.out.println(a);
System.out.println(s);
}
}
|
在Controller下进行自动注入
1
2
|
@Autowired/@Resource
AImpl aImpl;
|
启动Spring时报错
解决
方案一
我的,在Service实现类注入时自定义名字
1
2
3
4
5
6
7
8
|
@Service("AImpl")
public class AImpl implements Common{
@Override
public void sout(String s) {
System.out.println(a);
System.out.println(s);
}
}
|
在Controller注入接口时给对应名字注入
1
2
|
@Autoired/@Reource(name = "AImpl")
Common common;
|
方案二
项目组长写了一个接口ACommon继承于接口Common
1
2
3
|
@Service
public interface ACommon extends Common{
}
|
Controller注入子类接口
1
2
|
@Autoired/@Reource
ACommon aCommon;
|
完美解决!