【问题标题】:spring-data-jpa : Should I need to configure myself for production?spring-data-jpa :我是否需要为生产配置自己?
【发布时间】:2017-11-17 11:06:42
【问题描述】:

我是弹簧靴的新手。我读到了 spring-data-jpa tutorial。我看到了很多DataSource,EntityManagerFactory,JpaTransactionManager等的配置代码;但是当我使用 spring-boot 时,这些是通过将applications.properties 文件中的一些属性声明为 ..

spring.datasource.url=jdbc:mysql://localhost/mydb?autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

我没有插入任何持久性上下文配置(即使是我的存储库接口上的@Repository 注释)。我的测试方法运行正确。

但我很好奇我可以将这些用于生产吗?我看到了来自测试方法的日志消息

INFO 8108 --- [Thread-4] j.LocalContainerEntityManagerFactoryBean:为持久性单元“默认”关闭 JPA EntityManagerFactory

我不知道persistence unit 'default' 是否足以用于生产。

【问题讨论】:

  • 我希望此配置不适用于您的生产环境,因为这意味着您的生产数据库有一个名为“root”的用户和密码“root”。除此之外,你只是在这里表现出对未知的恐惧。与其遵循一些随机教程,不如阅读 Spring Boot 文档。
  • @Gimby 我看到 spring-boot 减少了大量的配置。作为我的问题,我不需要配置DataSourceEntityManagerFactoryJpaTransactionManager 等。但我不知道我应该为我的项目使用 spring-boot 的自动配置,或者我应该自己配置它们以供以后生产广泛的配置(例如:多个数据源、连接池、缓存)。我很好奇spring-boot的配置也可以做我以后需要的一切。这就是我要问的问题。

标签: spring spring-boot spring-data-jpa


【解决方案1】:

在生产环境中配置和管理DataSource 的一种常用方法是通过JNDI。来自the Spring Boot Reference Guide

29.1.3 连接到 JNDI 数据源

如果您将 Spring Boot 应用程序部署到应用程序 您可能想要配置和管理数据源的服务器 您的应用程序服务器内置功能并使用 JNDI 访问它。

spring.datasource.jndi-name 属性可以用作替代 到spring.datasource.urlspring.datasource.usernamespring.datasource.password 属性以从 a 访问 DataSource 特定的 JNDI 位置。例如,以下部分 application.properties 展示了如何访问定义的 JBoss AS DataSource:

spring.datasource.jndi-name=java:jboss/datasources/customers

然后您必须在应用程序服务器中配置您的DataSource。例如在 JBoss 中:DataSource configuration in JBoss AS7.1

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 2023-03-13
    • 2021-12-22
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多