spring boot的属性配置

引言

苹果手机刚推出的时候,他只是一小块由金属和玻璃组成的板子,完全不符合人们对手机的认知(比较以前的手机是全按键的)。但是它开创了智能手机的新时代,完全改变了人们对手机的认识。它刚发布的时候,人们很难想象只有一个按钮的手机怎么用来打电话。

spring boot 的自动配置某种程度上和苹果手机类似。自动配置能够极大程度的简化spring的应用的开发。

自动配置

在spring中有两种不同的配置:

  • bean装配:生命在spring应用上下文中创建的应用组件以及他们之间怎么相互注入。
  • 属性注入:设置spring应用上下文中bean的值的配置。

spring的环境抽象是各种配置属性的一站式服务。他会拉去多个属性源,包括 JVM系统属性、操作系统环境变量、命令行参数、应用属性配置文件 等。他会降这些属性整合到一个源中,通过这个源可以把属性注入到spring的bean中。

spring boot自动配置的bean都可以通过spring环境提取的属性进行配置。

在使用命令行启动应用的时候设置指定端口:java -jar xxxx.jar –service.port=9090

也可以通过操作系统的变量进行一次性的设置(这种一般不常用,比较一台服务器跑一个程序属实有点浪费):export SERVICE_PORT=9090

在yml中设置数据源

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver //数据库驱动
    url: jdbc:mysql://127.0.0.1:3306/db //数据库地址
    username: user   //数据库登录名
    password: pass   //数据库登录密码

设置服务器端口

可以通过service.port 来设置项目启动端口。

server:
  port: 8093

如果端口被设置为0,服务将不会真的在0端口启动,它会任选一个可用端口启动。

server:
  port: 0

springboot设置ssl

ssl:
  key-store: file:///path/ssl/keys.jks
  key-store-password: pass
  key-password: pass

配置日志

springboot默认情况下,会通过Logback配置日志,日志会已info写入控制台。为了完全控制日志的配置,我们需要在根目录下(src/main/resources中)创建一个logback.xml文件。默认配置自行百度。

在springboot的yml中,常见的可以设置日志级别和日志写入到哪个文件中。

logging:
  file: /var/logs/log.log
  level: 
    root: WARN
    org:
      springframework:
        security: DEBUG

小结

  • spring bean 可以添加@ConfigurationPropertios,能够从多个属性中取一个来注入他的值。
  • 配置属性可以通过命令行参数、环境变量、JVM系统属性、属性文件或YML文件等方式进行设置。
  • 配置属性可以覆盖自动配置的相关属性,包括指定数据源URL和日志级别。
  • Spring profile 可以与属性源协同使用,从而能够基于激活的profile条件化的设置配置属性。

标签

发表评论