java - JPA 是否要求数据源来自 JNDI?

标签 java spring tomcat jpa jndi

我在 Tomcat 中为我的 Web 应用程序使用 Spring。我的数据源是在 Spring 中构建的,然后使用 org.springframework.jndi.JndiTemplate 发布到 JNDI。由于一些原因,这很笨拙,但我的主要问题是很难控制正在使用的数据库(我想做测试)。是否可以在不使用 JNDI 作为查找服务的情况下使用 JPA?理想情况下,我能够将数据源直接提供给 JPA,或者通过一些不依赖于容器的其他方法来实现(我已经研究了容器不提供的 JNDI 实现,但它们'它们不适合我的需要)。

最佳答案

您可以在 spring 配置文件中指定数据源。这是我使用 MySql 数据库的摘录。要查看完整的配置文件和项目,请查看 GitHub 上的源代码.

<!-- Database -->
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/to_thought_tutorial" />
    <property name="username" value="tutorial" />
    <property name="password" value="tutorial" />
</bean>

<!-- Entity Manager -->
<bean id="entityManagerFactory"
   class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
       <property name="dataSource" ref="datasource" />
       <property name="persistenceUnitName" value="tothought-tutorial" />
</bean>

我也鼓励您访问我的博客,其中包含描述如何设置数据源的视频:http://tothought.cloudfoundry.com/post/4

Spring 文档还包括如何设置不依赖 JNDI 的数据源的示例:http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html#jdbc-datasource

关于java - JPA 是否要求数据源来自 JNDI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131114/

相关文章:

java - 如何为不同服务器上的计划任务创建仲裁器

css - 如何修复 apache-tomcat-8.5.39 中的默认内容类型呈现问题?

java - 解码 base64 图像并存储在内存不足的磁盘上(使用 java)

java - 检查 3 个标准

java - Lucene 的 Spring Bean 配置

java - 如何找到我之前设置的log4j级别

java - 监控 Ehcache 统计信息?

java - 如何获取我的 WSDL 的 URL?

java - 如何在playframework中使用kyotocabinet(JNI)?

java - OneToMany spring 表单问题