Java 有没有办法指定要包含在SpringDataMongoDB中的特定存储库类?

Java 有没有办法指定要包含在SpringDataMongoDB中的特定存储库类?,java,spring,spring-data-mongodb,Java,Spring,Spring Data Mongodb,我在一个包中定义了几个存储库接口。但是,我希望将它们单独分组配置,以便与相应的数据库设置一起使用 @ eababrimoLogiStudio< /Cord>似乎只考虑包作为分组单位。有没有一种方法可以实现多存储库配置,而不必将我的接口拆分为多个包?将每个配置文件链接到不同的属性源(.properties文件) 通过VM参数定义活动配置文件 -Dspring.profiles.active=dev 或者程序上 SpringApplication.setAdditionalProfiles(..)

我在一个包中定义了几个存储库接口。但是,我希望将它们单独分组配置,以便与相应的数据库设置一起使用<代码> @ eababrimoLogiStudio< /Cord>似乎只考虑包作为分组单位。有没有一种方法可以实现多存储库配置,而不必将我的接口拆分为多个包?

将每个配置文件链接到不同的属性源(.properties文件)

通过VM参数定义活动配置文件

-Dspring.profiles.active=dev
或者程序上

SpringApplication.setAdditionalProfiles(..)
//or
ConfigurableEnvironment environment = this.applicationContext.getEnvironment();
environment.setActiveProfiles("dev");

// or in case of WebAppContext via web.xml 
<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value> // or prod
 </context-param>

//or in case of WebAppContext if using servlet 3.1+ container set programatically
servletContext.setInitParameter("spring.profiles.active", "dev");
SpringApplication.setAdditionalProfiles(..)
//或
ConfigurableEnvironment=this.applicationContext.getEnvironment();
setActiveProfiles(“dev”);
//或者如果是通过web.xml访问WebAppContext
spring.profiles.active
开发//或产品
//或者在WebAppContext的情况下,如果以编程方式使用servlet 3.1+容器集
servletContext.setInitParameter(“spring.profiles.active”、“dev”);

您是否考虑过通过
@Profile
按配置文件分组?当然,您可以使用Spring配置文件或使用auto-configure的条件启用,但我不确定您为什么要尝试发明一种新方法来分离您所说属于不同组的类。只需使用不同的软件包,然后继续。@AbhijitSarkar是的,创建单独的软件包并使用它很容易。然而,有时我们会遵循特定的项目约定,这样相关人员就可以通过查看每个组件的结构轻松猜测它们的功能。@fg78nc我以前在Spring中没有真正使用过配置文件,但我看不出这有什么帮助。我需要所有存储库在任何环境或配置文件中运行,但我需要它们使用单独的数据库配置。假设有一些存储库需要访问本地数据库,那么有一些存储库需要访问远程服务器上的数据库。@您可以为每个配置文件分配不同的配置(存储库)
SpringApplication.setAdditionalProfiles(..)
//or
ConfigurableEnvironment environment = this.applicationContext.getEnvironment();
environment.setActiveProfiles("dev");

// or in case of WebAppContext via web.xml 
<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value> // or prod
 </context-param>

//or in case of WebAppContext if using servlet 3.1+ container set programatically
servletContext.setInitParameter("spring.profiles.active", "dev");