Spring Boot 简单配置(.yml文件)

本文介绍了Spring Boot如何使用application.yml配置文件,包括默认配置、自定义环境配置、日志格式设置、配置引入方式以及修改Banner和Spring Cloud组件Eureka、Zuul、Config的简单配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Spring Boot默认配置文件为application.properties或application.yml(这里用的是application.yml,所以要注意空格),例如配置名“:”后面有空格或空行

server:
  # 配置端口
  port: 8080 
  # 配置项目发布路径
  servlet:
    context-path: /
    
# 使用jpa操纵mysql数据库  
# 需要添加依赖spring-boot-starter-data-jpa和mysql-connector-java
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/blog?useUnicode=true&useSSL=false&characterEncoding=utf-8&autoReconnect=true
    username: root
    password: yuan0123
    driver-class-name: com.mysql.jdbc.Driver

  jpa:
    database: MYSQL
    show-sql: true
    
    hibernate:
      ddl-auto: update
  # 设置运行模式,加载不同配置文件application-*.yml,以便适应各种运行环境
  profiles:
    # 模式设置-开发模式-自动加载application-dev.yml
    # active: dev
    # 模式设置-测试模式-自动加载application-test.yml
    active: test
    
    
#logging:
  # 日志默认配置文件:classpath:logback-spring.xml/classpath:logback-spring.groovy,也可以用以下字段自定义配置
  #config: classpath:logback-spring.xml

2、自己创建相应的application-*.yml,写入想要的配置,以适用于不用项目运行环境(*有特殊需求则进行配置)

3、配置不同日志打印格式(*有特殊需求则进行配置)

默认的配置日志格式的文件为:

classpath:logback-spring.xml/classpath:logback-spring.groovy

也可以在application.yml中通过以下字段配置

 

#logging:
  # 日志默认配置文件:classpath:logback-spring.xml/classpath:logback-spring.groovy,也可以用以下字段自定义配置
  #config: classpath:logback-spring.xml

以下是具体配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 日志格式
        2018-04-08 12:16:39.593 |-INFO  [restartedMain] org.apache.tomcat.util.net.NioSelectorPool [180] -| Using a shared selector for servlet write/read
     -->
    <property name="DEF_PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
    <!-- 日志格式
        [INFO ] per.yuan.spring.controller.BlogController [30] [2018-04-10 10:04:13.786] 
        ->>  msg msg msg
     -->
    <property name="DEV_PATTERN" value="[%-5level] %c [%L] [%-12(%d{yyyy-MM-dd HH:mm:ss.SSS})] %n -->>  %msg%n" />
    <!-- 测试环境下,日志文件路径 -->
    <property name="TEST_FILE_PATH" value="d:/SpringBoot-test.log" />
    
    <!-- 开发环境 -->
    <springProfile name="dev">
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${DEV_PATTERN}</pattern>
            </encoder>
        </appender>
        <logger name="com.light.springboot" level="debug" />
        <root level="info">
            <appender-ref ref="CONSOLE" />
        </root>
    </springProfile>
    
    <!-- 测试环境 -->
    <springProfile name="test">
        <!-- 每天产生一个文件 -->
        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <file>${TEST_FILE_PATH}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名称 -->
                <fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存历史数量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${DEF_PATTERN}</pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="TEST-FILE" />
        </root>
    </springProfile>
</configuration>

4、在程序中引入自定义配置

假如配置文件中有以下字段

# 以下是自己程序中需要的自定义配置
blog:
  webmaster: "${blogInfo}"
  url: "http://www.${blog.webmaster}.com"  

blogInfo: yardstrong

(1)直接使用@Value注解引入配置

@Value("${blogInfo}")
private String blogInfo;
	
@Value("${blog.url}")
private String blogUrl;

使用时直接使用即可

log.info("blogInfo:\t"+blogInfo);
log.info("blogUrl:\t"+blogUrl);

(2)利用Bean类注入配置

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "blog")
public class BlogConfig {
	
	private String webmaster;
	
	private String url;

	
	public BlogConfig() {
		super();
	}

	public BlogConfig(String webmaster, String url) {
		super();
		this.webmaster = webmaster;
		this.url = url;
	}

	public String getWebmaster() {
		return webmaster;
	}

	public void setWebmaster(String webmaster) {
		this.webmaster = webmaster;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	@Override
	public String toString() {
		return "BlogConfig [webmaster=" + webmaster + ", url=" + url + "]";
	}
	
	
}

使用时直接使用即可

@Autowired
	private BlogConfig blogConfig;
	
	@GetMapping(value = "/blog")
	public String getList() {
		log.info(blogConfig.toString());
		return "log in console!!";
	}

 

5、修改Banner ,链接  https://blog.youkuaiyun.com/YardStrong/article/details/81564956

 

6、Spring Cloud 常用组件 Eureka、Zuul、Config简单配置 https://blog.youkuaiyun.com/YardStrong/article/details/87194068

Spring Boot 提供了非常便捷的方式来自定义 `application.yml` 配置文件,并将其属性绑定到 Java 对象中,这不仅提高了代码的灵活性还增强了项目的可维护性。 ### 一、自定义配置项 假设你需要添加一个新的数据库连接池的相关设置,可以在原有的 `application.yml` 中直接追加相应的键值对: ```yaml spring: datasource: hikari: minimum-idle: 5 maximum-pool-size: 20 ``` 这里我们只是简单地调整 HikariCP 连接池的一些默认参数。当然也可以创建完全独立于 Spring 的新组配置信息,例如为应用指定一些业务规则或外部服务API密钥等个性化内容: ```yaml myapp: api-key: "your_secret_api_key" features: enabled-feature-a: true beta-mode: false ``` ### 二、读取配置至POJO 为了将上述自定义配置映射成易于操作的对象实例,在项目里新建一个 Java 类并利用注解 @ConfigurationProperties 或者更推荐使用新版中的 @Value 注入单个值;如果是一个完整的配置块则适合前者。 #### 使用@ConfigurationProperties方式 首先需要开启@EnableConfigurationProperties支持(通常已经在主应用程序类上存在),然后定义一个对应的实体bean: ```java import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component //让这个组件能被自动装配进IOC容器 @ConfigurationProperties(prefix = "myapp")//前缀对应yml里的节点名称 public class MyAppConfig { private String apiKey; private Features features; public static class Features { boolean enabledFeatureA; boolean betaMode; getters/setters... } getters/setters... } ``` 接着就可以通过依赖注入轻松获取这些配置数据啦! 另外需要注意的是当修改完配置之后记得重启程序使之生效哦~不过对于部分场景下动态刷新的需求,可以结合Actuator端点完成即时更新功能~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值