2017-06-15 47 views
0

我是全新的弹簧靴。我读了约spring-data-jpatutorial。我看到很多配置代码DataSource,EntityManagerFactory,JpaTransactionManager等;但是,当我与春天开机使用,这些都是由applications.properties文件中声明了几个属性来完成..spring-data-jpa:我是否需要配置自己的生产?

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 

我没有插入任何持久化上下文配置(在我的repostory接口甚至@Repository注解)。我的测试方法运行正常。

但我很好奇这个问题我可以用作生产?我看到的测试方法日志消息

INFO 8108 --- [线程4] j.LocalContainerEntityManagerFactoryBean:关闭JPA EntityManagerFactory的持久性单元 '默认'

我不知道persistence unit 'default'是生产足够好。

+0

我希望这种配置对您的生产环境不适用,因为那意味着您的生产数据库有一个名为'root'的用户和密码'root'。除此之外,你只是在这里表现出对未知的恐惧。而不是遵循一些随机教程,请阅读spring引导文档。 – Gimby

+0

@Gimby我看到spring-boot减少了大量的配置。作为我的问题,我不需要配置'DataSource','EntityManagerFactory','JpaTransactionManager'等。但是我不知道我应该使用spring-boot的自动配置来进行我的项目,或者我应该自己配置它们以供以后生产宽配置*(例如:多个数据源,连接池,缓存)*。我很好奇,spring-boot的配置也可以完成我以后需要的所有功能。这就是我正在问这个问题。 – Cataclysm

回答

1

在生产中配置和管理DataSource的一种常见方式是通过JNDI。从the Spring Boot Reference Guide

29.1.3连接到JNDI数据源

如果要部署春季启动应用程序到应用程序服务器 你可能要配置和管理使用 您的应用程序服务器的数据源内置功能并使用JNDI访问它。

spring.datasource.jndi-name属性可以被用作一个替代 到spring.datasource.urlspring.datasource.usernamespring.datasource.password属性从 特定JNDI位置访问DataSource。例如,在 application.properties以下部分将说明如何访问一个JBoss AS定义 DataSource

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

这样您就可以配置您的DataSource在你的应用程序服务器。例如在JBoss中:DataSource configuration in JBoss AS7.1

相关问题