📜  Spring Boot – 应用程序属性

📅  最后修改于: 2022-05-13 01:55:30.724000             🧑  作者: Mango

Spring Boot – 应用程序属性

我们已经知道 Spring Boot 构建在 Spring 之上,包含了 Spring 的所有特性。并且现在正成为开发人员的最爱,因为它是一个快速的生产就绪环境,使开发人员能够直接专注于逻辑,而不是为配置和设置而苦恼。在 Spring Boot 中,每当您在 spring starter 或 IDE(Eclipse 或 STS)中创建新的 Spring Boot 应用程序时,都会有一个文件位于src/main/resources文件夹中,名为application.properties文件,如下图所示如下图所示:

极客们,现在你一定想知道这个文件是做什么的?这个文件在开发过程中的主要作用是什么?因此,在 Spring Boot 应用程序中, application.properties文件用于将应用程序相关的属性写入该文件。该文件包含在不同环境中运行应用程序所需的不同配置,并且每个环境将具有由它定义的不同属性。在应用程序属性文件中,我们定义了每种类型的属性,例如更改端口、数据库连接、与 eureka 服务器的连接等等。现在让我们看一些例子来更好地理解。

示例 1:更改端口号

有时当你运行你的 spring 应用程序时,你可能会遇到以下类型的错误

错误是端口 8989 已在使用中。因此,在这种情况下,您可能会终止在此端口号上运行的进程,或者您可以更改端口号并重新运行您的应用程序。那么您必须在哪里更改端口号?例如在application.properties 文件中。

因此,如上面的屏幕截图所示,您可以通过以下行更改您的端口号

server.port=8989

示例 2:定义我们的应用程序的名称

要定义我们的应用程序的名称,您可以像这样编写属性

spring.application.name = userservice

所以你可以看到这将属性表示为键值对,每个键也与一个值相关联。

示例 3:连接 MySQL 数据库

要连接 MySQL 数据库,您必须编写很多行。你可以这样写属性

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.jdbc.Driver

示例 4:连接 H2 数据库

H2 是一个嵌入式、开源和内存数据库。它是一个用Java编写的关系数据库管理系统。它是一个客户端/服务器应用程序。它通常用于单元测试。它将数据存储在内存中,而不是将数据持久存储在磁盘上。要连接 H2 数据库,您必须编写一堆代码。你可以这样写属性

spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:dcbapp
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

示例 5:连接 MongoDB 数据库

要连接 MongoDB 数据库,您必须编写一堆代码。你可以这样写属性

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=BookStore

示例 6:连接 Eureka 服务器

Eureka Server 是一个包含所有客户端服务应用程序信息的应用程序。每个微服务都会注册到 Eureka 服务器,Eureka 服务器知道每个端口和 IP 地址上运行的所有客户端应用程序。 Eureka Server 也称为发现服务器。你可以这样写属性

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://localhost:9096/eureka/
eureka.instance.hostname=localhost

application.yml/application.yaml 文件

application.properties 文件不那么可读。所以大多数时候开发人员会选择 application.yml 文件而不是 application.properties 文件。 YAML 是 JSON 的超集,因此是一种用于指定分层配置数据的非常方便的格式。 YAML 更具可读性,有利于开发人员读/写配置文件。例如,让我们挑选一些我们在上面解释过的属性文件,并以 YAML 格式编写它们。

案例 1:让我们选择上面的示例 3,我们连接的是 MySQL 数据库相应的属性如下:

spring:
  datasource:
    url: jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
    username: springuser
    password: ThePassword
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update

案例 2:让我们选择上面的示例 6,我们正在连接 Eureka 服务器, 相应的属性如下:

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:9096/eureka/
  instance:
    hostname: localhost