我是spring-boot的全新手。我读到了 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:关闭持久性单元'default'的JPA EntityManagerFactory
我不知道persistence unit 'default'
对于制作是否足够好。
答案 0 :(得分:1)
在生产中配置和管理DataSource
的一种常用方法是JNDI。来自the Spring Boot Reference Guide:
29.1.3与JNDI数据源的连接
如果要将Spring Boot应用程序部署到应用程序 您可能希望使用的服务器配置和管理数据源 您的Application Server内置功能并使用JNDI访问它。
可以使用
spring.datasource.jndi-name
属性作为替代 到spring.datasource.url
,spring.datasource.username
和。{spring.datasource.password
属性可从a访问DataSource
具体的JNDI位置。例如,以下部分 application.properties显示了如何访问定义的JBoss ASDataSource
:
spring.datasource.jndi-name=java:jboss/datasources/customers
然后,您必须在Application Server中配置DataSource
。例如在JBoss:DataSource configuration in JBoss AS7.1