在Spring中定义注入的默认实现?

mem*_*und 3 java spring dependency-injection qualifiers

我有一些其他类扩展的基类。因此,我必须提供能够插入特定实例的限定符。

我想知道是否可以将这些类(例如,最高级的类)中的任何一个标记为默认类,如果没有提供限定符的话,该默认类将被选中@Autowired吗?

@Service
//@Qualifier("Parent")
class ParentRunner;

@Service
@Qualifier("Child")
class ChildRunner extends ParentRunner;
Run Code Online (Sandbox Code Playgroud)

以下内容至少不起作用:

@Autowired
//@Qualifier("Parent")
private ParentRunner runner;
Run Code Online (Sandbox Code Playgroud)

M. *_*num 5

您可以标记一个实现,@Primary然后将其用作默认实现。使用xml时,可以使用primary元素内的bean元素将实例设置为要使用的主bean实例。

参见http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Primary.html