[英]Running Spring Boot Application on a different machine
我正在创建一个Spring Boot CRUD应用程序,并且希望它在另一台计算机上运行。 我使用Spring Boot + JPA-Hibernate + MySQL。
我了解MySQL只是文件。 数据源意味着服务器,在我的例子中是localhost 3306,数据库在哪里。
由于数据源正在我的计算机上运行,因此我可以访问MySQL数据库。 但是,当我将应用程序带到不在网络上的另一台计算机上时,我必须创建数据源(即本地主机)并将mysql文件放在此处。 对?
我的问题是,是否有一种方法不需要用户每次需要CRUD应用程序才能启动数据库服务器。 我正在尝试创建一个独立的应用程序顺便说一句。
有没有办法从我们的Spring Boot应用程序中使用sql文件启动服务器,就像我们使用无服务器数据库sqlite一样?
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根据给定的Entity结构更改数据库。
因为我们还没有数据库结构,所以从create开始。 第一次运行后,我们可以根据程序要求将其切换为更新或不更新。 当您想对数据库结构进行一些更改时,请使用update。
H2和其他嵌入式数据库的默认值为create-drop,而MySQL之类的默认值为none
良好的安全做法是,在数据库进入生产状态后,不进行任何操作,并从连接到Spring应用程序的MySQL用户撤消所有特权,然后仅给他SELECT,UPDATE,INSERT,DELETE。
使应用程序可执行。
尽管可以将该服务打包为传统的WAR文件以部署到外部应用程序服务器,但是下面演示的更简单的方法创建了一个独立的应用程序。 您将所有内容打包在一个可执行的JAR文件中,该文件由一个很好的旧Java main()方法驱动。 在此过程中,您将使用Spring的支持将Tomcat Servlet容器作为HTTP运行时嵌入,而不是部署到外部实例。
src / main / java / hello / Application.java
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.