Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
使用JNDI中的值设置Spring引导属性_Spring_Spring Boot - Fatal编程技术网

使用JNDI中的值设置Spring引导属性

使用JNDI中的值设置Spring引导属性,spring,spring-boot,Spring,Spring Boot,如何将存储在JNDI中的字符串放入Spring引导属性 更详细一点: 我在应用程序中使用此属性从JNDI获取数据源 spring.datasource.jndi name=my\u data\u source\u jndi\u name。目前,DB模式在application.properties中以以下方式硬编码:spring.jpa.properties.hibernate.default\u schema=my\u schema。有一个JNDI记录包含DB架构名称。如何也从JNDI获取模式

如何将存储在JNDI中的字符串放入Spring引导属性

更详细一点: 我在
应用程序中使用此属性从JNDI获取
数据源
spring.datasource.jndi name=my\u data\u source\u jndi\u name
。目前,DB模式在
application.properties
中以以下方式硬编码:
spring.jpa.properties.hibernate.default\u schema=my\u schema
。有一个JNDI记录包含DB架构名称。如何也从JNDI获取模式?

如下所述:

Spring将从JNDI解析属性,因此您可以通过各种方式对其进行参数化。您可以绕过属性文件,直接在Java配置中使用
@Value()
注释

@Value("my.property.in.jndi")
private String schema;
也可以在属性文件中执行以下操作:


spring.jpa.properties.hibernate.default_schema=${my.property.in.jndi}

只需将
spring.jpa.properties.hibernate.default_schema
作为属性添加到jndi中,它就会被使用。您不需要这个构造,只需将
spring.jpa.properties.hibernate>作为jndi属性添加即可。启用JNDI时,将注册
JndiPropertySource
,并启用JNDI的属性解析。属性来自何处并不重要(可以是file、jndi甚至DB,如果您有
PropertySource
)。