在现有应用程序中,我使用 jndi 连接到数据库,如下所示。请指导我如何在基于 Spring 的应用程序中编写有效的代码。
我当前的 jndi 查找代码是
InitialContext context = null;
String welcomeMessage = null;
Integer maxSessionCount = null;
try{
context = new InitialContext();
welcomeMessage = (String)context.lookup(
"java:comp/env/welcomeMessage");
maxSessionCount = (Integer)context.lookup(
"java:comp/env/maxSessionCount");
}
catch (NamingException exception){
exception.printStackTrace();
}
最佳答案
<jee:jndi-lookup id="dbDataSource"
jndi-name="jdbc/DatabaseName"
expected-type="javax.sql.DataSource" />
使用如下内容在 tomcat 的 server.xml 中声明 JNDI 资源:
<GlobalNamingResources>
<Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
username="dbUsername" password="dbPasswd"
url="jdbc:postgresql://localhost/dbname"
driverClassName="org.postgresql.Driver"
initialSize="5" maxWait="5000"
maxActive="120" maxIdle="5"
validationQuery="select 1"
poolPreparedStatements="true"/>
</GlobalNamingResources/>
并从 Tomcat 的 Web context.xml 引用 JNDI 资源,如下所示:
<ResourceLink name="jdbc/DatabaseName"
global="jdbc/DatabaseName"
type="javax.sql.DataSource"/>
在您的应用程序中使用 dbDatasource Bean。
关于java - tomcat中PostgreSQL数据库的JNDI查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462400/