您的位置:首页 > 编程语言 > Java开发

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

2018-04-10 12:20 543 查看

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!!";
}

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: