在spring(boot)中,我有多个接口实现。在注入接口时,我想定义我想要注入的具体实现。
我该怎么做?
答案 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
)