例
interface IA
{
public void someFunction();
}
@Resource(name="b")
class B implements IA
{
public void someFunction()
{
//busy code block
}
public void someBfunc()
{
//doing b things
}
}
@Resource(name="c")
class C implements IA
{
public void someFunction()
{
//busy code block
}
public void someCfunc()
{
//doing C things
}
}
class MyRunner
{
@Autowire
@Qualifier("b")
IA worker;
worker.someFunction();
}
谁可以给我解释一下这个。
- spring如何知道要使用哪种多态类型。
- 我需要
@Qualifier
还是@Resource
? - 为什么我们要自动连接接口而不是实现的类?
10
您可以自动连接接口,以便可以连接不同的实现-这是接口编码的要点之一,而不是类。
—
戴夫·牛顿
您将采用其他实现;我不明白这个问题。
—
戴夫牛顿
如果我们在接口中进行布线,当Impl类中需要访问默认的可见性方法时,会发生什么情况?我不能将该方法存根添加到接口中,因为公共接口不能包含默认修饰符。
—
jlewkovich
我认为仅为一种实现建立接口是一种愚蠢的做法,在Java世界中已被接受。结果是大量垃圾代码,但是每个人都满意他们遵循SOLID和OOP的规则。用向导把弹簧扔进历史的垃圾箱。
—
avgolubev