Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从spring配置中引用值_Java_Spring_Multi Tenant - Fatal编程技术网

Java 从spring配置中引用值

Java 从spring配置中引用值,java,spring,multi-tenant,Java,Spring,Multi Tenant,首先是一些设置信息: 我有一个基于spring的多租户应用程序。多租户启用库是一个内部开发的工具,我在其中工作时必须使用它。它的工作原理是在应用程序的servlet前面设置一个拦截器。当一个请求命中servlet时,它加载一个特定于租户的spring配置,用于在命中servlet的url上指定的租户所需的“stuff” 如上所述,以上只是一点背景。现在谈谈问题: 我想做的是在加载的租户配置中创建一个值,我可以使用它在需要的地方注入。那么,有没有一种方法可以在spring配置中定义一个常量,然后通

首先是一些设置信息:

我有一个基于spring的多租户应用程序。多租户启用库是一个内部开发的工具,我在其中工作时必须使用它。它的工作原理是在应用程序的servlet前面设置一个拦截器。当一个请求命中servlet时,它加载一个特定于租户的spring配置,用于在命中servlet的url上指定的租户所需的“stuff”

如上所述,以上只是一点背景。现在谈谈问题:

我想做的是在加载的租户配置中创建一个值,我可以使用它在需要的地方注入。那么,有没有一种方法可以在spring配置中定义一个常量,然后通过java代码中的
@Value
@Resource
引用它

它背后不会有bean实现,它只是一个键/值,我可以在应用程序中按名称引用它。因此,有些东西的效果是:


然后我能做些类似的事情吗

@Value{MyIdentifier.theId}
String theId;
让Spring意识到并注入值。问题是,执行类似于上述Spring的操作会抱怨bean没有实现。注意,没有为bean指定类。我之所以要这样做,是因为每个租户配置文件都会包含这个bean,但实际值会因租户而异

配置中是否有其他类型可用于执行此操作?如果是这样,配置中必须有哪些模式


我猜我是想让Spring做一些不想做的事情,或者,这太简单了,我看不见它,因为我盯着它看太久了。无论如何,感谢您的帮助。

如果不提供类实现,您无法在配置文件中创建bean标记。如果要插入字段的值,则必须改为使用属性文件

创建属性文件,如下所示:

应用程序属性

theId=1001
在配置中加载属性文件:

 <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        <property name="locations">
          <list>
            <value>classpath:application.properties</value>
          </list>
        </property>
      </bean>

为什么不使用一个属性文件和一个Ok,我们希望避免使用另一个属性文件,但看起来这是我必须要做的。
  @Value("${theId}")
    String theId;