java - 如何使用Java配置在Tomcat 8中配置JNDI数据源:

标签 java spring jndi

如何在Java配置文件中配置JNDI数据源,而不是在“web.xml” Servlet上下文中遵循以下代码段:

<resource-ref>
   <description>DB Connection</description>
   <res-ref-name>jdbc/DatabaseName</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
</resource-ref>

最佳答案

注意:不要忘记将“mysql-connector-java-5.1.36.jar”复制到主安装文件夹中的Tomcat的“lib”子文件夹中。

首先:在“pom.xml”文件中添加以下依赖项:

 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.36</version>
 </dependency>

第二:在“webapp”根文件夹中创建META-INF文件夹和“context.xml”文件,如下图所示:

enter image description here

第三:在“context.xml”文件中添加以下代码片段:
<?xml version='1.0' encoding='utf-8'?>

<Context>
    <Resource name="jdbc/DatabaseName" auth="Container" type="javax.sql.DataSource"
              maxActive="50" maxIdle="30" maxWait="10000"
              username="DatabaseUsername" password="DatabasePasssword"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/DatabaseName"/>
</Context>

第四:在Spring Context配置文件中创建以下Bean:
@Bean
public DataSource dataSource() {
    JndiDataSourceLookup dataSource = new JndiDataSourceLookup();
    dataSource.setResourceRef(true);
    return dataSource.getDataSource("jdbc/DatabaseName");
}

注意:“jdbc / DatabaseName”是我们在“context.xml”文件中已经添加的“名称”属性。

关于java - 如何使用Java配置在Tomcat 8中配置JNDI数据源:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32957132/

相关文章:

java - 具有多个内部异常并使用流的异常

java - 从 tomcat webapps 文件夹中读取属性文件

java - Spring Boot Rest Controller 未将请求主体转换为自定义对象

java - Tomcat 更新 context.xml 但不应该

JavaEE 7 : EJB jndi-name without interface

java - 如何从 JNDI NamingException 中提取 "error code"数字?

java - 如何将GC日志写入命名管道

java - 获取应用程序文件路径

spring - 如何使用 Spring LDAP 身份验证

java - Spring - 使用@Service和@Repository注释同一个类