如何在 Spring 从 IBM WebSphere 9 启动时获取 JNDI 数据源

How to get JNDI datasource in Spring Boot from IBM WebSphere 9

尝试使用 jdbc 作为 SQL 服务器将 SpringBoot 应用程序部署到 WebSphere 9。 我需要从 websphere 设置中获取 jdbc 用户名和密码(而不是从 app.properties)。

据我所知,我可以使用 InitialConfig.lookup() 或 JndiDataSourceLookup,但我如何找到数据库、用户名和密码?

选项 1:

将以下属性添加到application.properties

spring.datasource.jndi-name=jdbc/jndiName

在 spring boot main class 或 config class

中添加数据源 bean 定义
 @Autowired
 private Environment env;

@Bean
public DataSource dataSource() throws NamingException {
    return (DataSource) new JndiTemplate()
                             .lookup(env.getProperty("spring.datasource.jndi-name"));
 }

选项 2:

使用 Java 标准 API

DataSource ds = javax.naming.InitialContext.doLookup("jdbc/jndiName");