如何注入接口的具体实现?

时间:2017-08-04 14:51:12

标签: spring spring-boot dependency-injection

在spring(boot)中,我有多个接口实现。在注入接口时,我想定义我想要注入的具体实现。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以合并@Resource@Qualifier: (为简单起见,所有代码都是kotlin)

0)接口定义:

interface Counter
class MemoryCounter : Counter
class DatabaseCounter : Counter

1)使用名称标记您的实现:

@Resource("myMemoryCounter")
@Component
class MemoryCounter : Counter

@Resource("myDatabaseCounter")
@Component
class DatabaseCounter : Counter

2)在您的服务中注入所需的实施

@Service
class Service(
    @Qualifier("myMemoryCounter") val counter1: Counter, // will be MemoryCounter 
    @Qualifier("myDatabaseCounter") val counter2: Counter, // will be DatbaseCounter 
)