java - Spring,加载具有特定依赖的bean

标签 java spring

是否可以加载一个bean(范围“原型(prototype)”),告诉Spring使用特定的依赖项来创建它?

示例:

  • 依赖项“StoreA”和“StoreB”
  • 我想要加载的bean,“Service”

我可以告诉 Spring 有时使用“StoreA”加载“Service”,有时使用“StoreB”加载“Service”吗?

实际上,我找到的唯一解决方案是加载两个不同的应用程序上下文,每个应用程序上下文都有一组通用的 <include .../>指令和我声明存储的特定指令(因此每个应用程序上下文都有一个存储声明)。我可以使用单个应用程序上下文做同样的事情吗?

最佳答案

您可以使用它们的 id 引用特定的 bean,因此当 Autowiring 时使用

 @Qualifer("someBeanId")

或者在 spring 上下文中使用 'ref'/'ref-local'

关于java - Spring,加载具有特定依赖的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086186/

相关文章:

java - 尝试获取 sun-web-app_2_5 时 glassfish 中的连接超时

java - Gradle 无法解析 org.springframework.boot :spring-boot-gradle-plugin:1. 4.2.RELEASE (repo1.maven.org: Nome o servizio sconosciuto)

java - 在spring中配置mongodb,application.properties还是AbstractMongoConfiguration?

java - 序列化和反序列化 ArrayList 的问题

java - 应用程序在 Facebook 注销时崩溃,NullPointerException

java - 在 Java 中将 UTF8 转换为 ASCII

java - 是否有针对在 Spring Tool Suite(STS)中运行的 Web 应用程序的部署可交付成果(ear/war)?

java - 无法找到或加载主类 jar intellij

Spring 启动: GroupId and ArtifactId based on a property dynamically

java.lang.UnsupportedClassVersionError : org/springframework/boot/gradle/plugin/SpringBootPlugin : Unsupported major. 次要版本 52.0