gpt4 book ai didi

java - 在spring中以编程方式获取JNDI资源

转载 作者:行者123 更新时间:2023-11-28 22:20:13 24 4
gpt4 key购买 nike

我有一个 Tomcat servlet 容器,其中包含由 Tomcat 连接池管理的 DataSource 列表。从我的 Spring 应用程序(Spring 3.2.3)我想在运行时获取这些数据源之一,例如:

public class MyService {
@Autowired
private JndiObjectLocator jndiLocator;

public void myMethod(String jndiName) {
DataSource myDataSource = jndiLocator.locate(jndiName);
}
}

关于如何做到这一点有什么想法吗?

最佳答案

您始终可以在代码中执行 JNDI 查找,为此您可以使用 JndiDataSourceLookup 并调用 getDataSource() 方法。

public class MyService {
@Autowired
private JndiDataSourceLookup lookup;

public void myMethod(String jndiName) {
DataSource myDataSource = lookup.getDataSourcejndiName);
}
}

另一种选择是让您的 bean 知道 BeanFactory 并从那里检索 DataSource

public class MyService {
@Autowired
private BeanFactory factory;

public void myMethod(String jndiName) {
DataSource myDataSource = factory.getBean(jndiName, DataSource.class);
}
}

关于java - 在spring中以编程方式获取JNDI资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com