我将VM options设置为-Dmyapp.conf=config/my.properties。我需要使用此文件内容来选择要使用的存储库。我使用SpringBoot。

有服务,现在提供Could not autowire. There is more than one bean of 'MyRepository' type

@Service
public class MyServiceImpl implements MyService {

    @Autowired
    private MyRepository repository;
...}


仓库:

public interface MyRepository  {...}

@Repository
public class MyRepositoryImpl01 implements MyRepository  {...}

@Repository
public class MyRepositoryImpl02 implements MyRepository  {...}

最佳答案

您可以将Spring profiles用于此目的。

@Profile("profile1")
@Repository
public class MyRepositoryImpl01 implements MyRepository  {...}

@Profile("profile2")
@Repository
public class MyRepositoryImpl02 implements MyRepository  {...}


然后,在属性文件中,您需要:spring.profiles.active=profile1spring.profiles.active=profile2

07-26 08:50