java - 如何根据属性文件中的设置强制服务使用特定存储库?

标签 java spring spring-mvc spring-boot

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

有服务,现在它给出无法 Autowiring 。存在多个“MyRepository”类型的 bean:

@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

关于java - 如何根据属性文件中的设置强制服务使用特定存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42736876/

相关文章:

java - 如何获取从 fragment 到某个类的微调器项目位置?

java - 来自守护进程的错误响应 :request canceled while waiting for connection (Client. 等待 header 时超时)

spring - Autowiring 在 Spring 3.1.2、JUnit 4.10.0 中不起作用

spring - Spring @ControllerAdvice-NoClassDefFoundError:javax/servlet/ServletException

maven - @Valid 无法解析为 Spring 4.0.3 类型

java - JedisCluster : redis. clients.jedis.exceptions.JedisNoReachableClusterNodeException:集群中没有可访问的节点

java - org.hibernate.MappingException : Could not determine type for:

java - 如何使用Spring操作生产数据库数据格式?

java - 根 url 的匹配和静态资源的服务

java - Spring MVC 无效日期格式错误消息未显示