Running Spring Boot Application on a different machine

时间:2017-11-08 21:56:50

标签: java mysql spring hibernate spring-boot

I'm creating a Spring Boot CRUD Application, and I want it to run on another computer. I use Spring Boot + JPA-Hibernate + MySQL.

I understand MySQL is just file. And the DataSource means the server, in my case localhost 3306, where the db is.. Right?

I can access MySQL db as the data source is running on my machine. But when i take the application to a different computer which is not on a network, I have to create the data source, which is the localhost and put my mysql files there. Right?

My question is, whether there's a way which doesn't involve the user to start database server every single time they need the CRUD app to work. I'm trying to create a standalone app btw.

Is there a way to start the server from within our spring boot app with sql files, as if we do with SQLite, which is a serverless db?

1 个答案:

答案 0 :(得分:0)

Spring Boot为您提供所有内容的默认值,数据库中的默认值为H2,因此当您想要更改它并使用任何其他数据库时,您必须在application.properties文件中定义连接属性。

在sources文件夹中,您将创建一个资源文件src / main / resources / application.properties

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

  • spring.jpa.hibernate.ddl-auto可以是none,update,create,create-drop,有关详细信息,请参阅Hibernate文档。

  • none这是MySQL的默认设置,不对数据库结构进行任何更改。 更新Hibernate根据给定的实体结构更改数据库。

  • create每次创建数据库,但不要在关闭时删除它。
  • create-drop创建数据库,然后在SessionFactory关闭时将其删除。

从create开始,因为我们还没有数据库结构。第一次运行后,我们可以根据程序要求将其切换为更新或无。如果要对数据库结构进行一些更改,请使用update。

H2和其他嵌入式数据库的默认值是create-drop,但对于像MySQL这样的其他人来说是

安全实践很好,在数据库处于生产状态后,你将这个为none并撤销连接到Spring应用程序的MySQL用户的所有权限,然后只给他SELECT,UPDATE,INSERT,DELETE。

使应用程序可执行。

虽然可以将此服务打包为传统的WAR文件以部署到外部应用程序服务器,但下面演示的更简单的方法创建了一个独立的应用程序。您将所有内容打包在一个可执行的JAR文件中,由一个好的旧Java main()方法驱动。在此过程中,您使用Spring的支持将Tomcat servlet容器嵌入为HTTP运行时,而不是部署到外部实例。

的src /主/ JAVA /你好/ Application.java

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

指南:https://spring.io/guides/gs/accessing-data-mysql