【发布时间】:2017-01-31 10:05:44
【问题描述】:
我正在尝试为我的 WAR 文件设置 JNDI 数据库连接,该文件将部署在 WebLogic 12c 上。这就是我所拥有的:
@Bean
public DataSource dataSource() throws DataSourceLookupFailureException {
JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
return dataSourceLookup.getDataSource("jndiName");
}
在application.properties 文件中:
spring.datasource.jndi-name=jndiName
这是从 Spring Boot 指南的两个不同部分拼凑而成的:
- https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html
- https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html#howto-configure-a-datasource
我很困惑,为什么jndiName 被声明了两次?我的操作是否正确 - 这是正确的设置方式吗?
我的印象是 Spring Boot 要么会自动从 application.properties 检索 JNDI 名称,因此我不需要将 JNDI 名称硬编码到 getDataSource() 中,或者如果我硬编码 JNDI 名称,那么我不会'首先不需要在application.properties 中包含该属性。
根据我的解释,本指南中涉及如何建立 JNDI 连接的两个部分似乎相互矛盾。我怎么了?正确的设置方法是什么?
【问题讨论】:
-
这不是正确的方法。只需在
application.properties中指定 JNDI 名称,Spring Boot 就会进行查找。删除您自己的查找。你要么不是两者(除非你有多个数据源,你必须找到另一种方法)。您所指的部分是关于配置自定义数据源,即默认配置选项无法满足您的需求。 -
@M.Deinum 我是新手,所以请多多包涵。所以你是说整个
dataSource()是不必要的吗?我只需要application.properties中的那条线吗?此外,文件中是否还需要其他任何内容才能使其有效使用? -
不,这基本上就是你所需要的,
application.properties中的条目。
标签: java spring spring-boot database-connection jndi