【发布时间】:2015-05-09 00:51:12
【问题描述】:
首先是一些设置信息:
我有一个基于 Spring 的多租户应用程序。多租户支持库是我必须使用的内部开发工具。它的工作原理是在应用程序的 servlet 前面设置了一个拦截器。在请求命中 servlet 时,它会加载特定于租户的 spring 配置,用于在命中 servlet 的 url 上指定的租户所需的“东西”。
如上所述,以上只是一些背景知识。现在到问题/问题:
我想要做的是在加载的租户配置中创建一个值,我可以用它来注入我需要的地方。那么,有没有一种方法可以在 spring 配置中定义一个常量,然后在 java 代码中通过 @Value 或 @Resource 引用它?
它后面不会有 bean 实现,它只是纯粹的,只有一个键/值,我可以在我的应用程序中按名称引用它。所以,大意是:
<bean name="MyIdentifier">
<property name="theId" value="1001" />
</bean>
然后我可以做类似的事情吗?
@Value{MyIdentifier.theId}
String theId;
让 Spring 意识到并注入价值。问题是,执行上述 Spring 之类的操作会抱怨 bean 没有实现。注意,没有为 bean 指定类。我想这样做的原因是每个租户配置文件都会包含这个 bean,但实际值会因租户而异。
在配置中是否可以使用其他类型来执行此操作?如果是这样,配置中必须包含哪些架构?
我猜我要么试图让 Spring 做一些不打算做的事情,要么,这太简单了,因为我盯着它太久了,我看不到它。无论如何,感谢您的帮助。
【问题讨论】:
-
为什么不使用属性文件和
PropertyPlaceHolderConfigurer
标签: java spring multi-tenant