Springboot根据环境使用不同的实现类

8yparm6h  于 2023-11-17  发布在  Spring
关注(0)|答案(1)|浏览(103)

Springboot 3与Java20
我正在寻找最简单的方法来使用不同的实现取决于环境。
我有以下接口:

我的服务

public interface MyService {
    boolean send(String fileName, final String userName);
}

字符串
有两个实现:

MyService1Impl

@Service
@Qualifier("myService1Impl")
public class MyService1Impl implements MyService {

MyService2Impl

@Service
@Qualifier("myService2Impl")
public class MyService2Impl implements MyService {


然后我想使用以下内容:

@Autowired
private @Qualifier("myService1Impl") MyService myService1Impl;
@Autowired
private @Qualifier("myService2Impl") MyService myService2Impl;

// if @Profile("dev") use myService1Impl
// if @Profile("*") use myService2Impl


我希望尽可能地保持简单(如果可能的话,不必使用@Cofiguration)。

goucqfw6

goucqfw61#

在这种情况下,你不需要@Qualifier,只需将它们替换为@Profile("nameOfYourProfile")

@Service
@Profile("dev")
public class MyService1Impl implements MyService {

字符串

@Service
@Profile("!dev")
public class MyService2Impl implements MyService {

相关问题