我将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=profile1
或spring.profiles.active=profile2
。