SpringBoot14-springboot核心-外部配置,日志配置,Profile配置
来源:互联网 发布:多源异构数据 编辑:程序博客网 时间:2024/05/17 21:06
一:外部配置
Spring Boot允许使用properties文件,yaml文件或命令行参数作为外部配置。
1,命令行参数配置
Spring Boot可以是基于jar包运行的,打包jar包的程序可以直接通过命令行运行:
java -jar xx.jar
可以通过以下命令修改Tomcat端口号:
java -jar xx.jar --server.port=9090
2,常规属性配置
在Spring Boot里我们只需要在application.properties定义属性,直接使用@Value注入即可。
示例,在之前的springboot1项目基础上进行如下修改:
1)修改application.yml,增加属性:
book: author: jack name: hello world
2)新建一个Controller
package com.jack.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * Created by jack on 2017/7/30. */@RestControllerpublic class PropertiesController { @Value("${book.author}") private String bookAuthor; @Value("${book.name}") private String bookName; @RequestMapping("/property") public String helloProperty(){ return "book name is :"+bookName+" and book author is :"+bookAuthor; }}
3)运行
在浏览器输入:http://localhost:8080/property,浏览器输出如下:
3,类型安全的配置(基于properties)
上例中使用@Value注入每个配置在实际项目中会显得格外麻烦,因为我们的配置通常会是许多个,若使用上面的方式则要使用@Value注入很多次 Spring Boot还提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联,从而实现类型安全的配置。
修改application.yml,如下:
book: author: jack name: hello worldauthor: name: jack age: 18
类型安全的Bean,代码如下:
package com.jack.config;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Component/** *通过@ConfigurationProperties加装properties文件内的配置,通过prefix属性指定properties的配置 * 的前缀,通过locations指定properties文件的位置 */@ConfigurationProperties(prefix = "author")public class AuthorSetting { /** * 姓名 */ private String name; /** * 年龄 */ private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
测试代码如下:
package com.jack.controller;import com.jack.config.AuthorSetting;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * Created by jack on 2017/7/30. */@RestControllerpublic class PropertiesController { @Value("${book.author}") private String bookAuthor; @Value("${book.name}") private String bookName; @Autowired private AuthorSetting authorSetting; @RequestMapping("/property") public String helloProperty(){ System.out.println("helloProperty()"); return "book name is :"+bookName+" and book author is :"+bookAuthor; } @RequestMapping("/author") public String author(){ return "name: "+authorSetting.getName()+",age: "+authorSetting.getAge(); }}
这里使用post man进行测试接口输入:http://localhost:8080/author,效果如下:
4,日志配置
spring boot支持Java Util Logging,Log4J,Log4J2和Logback作为日志框架,无论使用哪种日志框架,Spring boot已为当前使用日志框架的控制台输出及文件输出做好了配置,默认情况下,Spring boot使用Logback作为日志框架。配置日志级别:
logging.file=D:/mylog/log.log
配置日志文件,格式为logging.level.包名=级别:
logging.level.org.springframework.web=DEBUG
4,Profile配置
Profile是Spring用来针对不同的环境对不同的配置提供支持,全局Profiel配置使用application-{profile}.properties(如application-{prod}.properties)通过在application.properties中设置spring.profiles.active=prod来指定活动的Profile。
下面做一个演示,生产prod和开发dev环境,生产环境8080,开发环境9090
生产和开发环境的配置文件如下:
application-prod.yml如下:
server: port: 8080
application-dev.yml如下:
server: port: 9090
修改application.yml代码如下:
spring: profiles: active: devbook: author: jack name: hello worldauthor: name: jack age: 18
上面主要增加了:spring.profiles.active=dev
运行程序,输出如下:
修改pring.profiles.active=prod
输出如下:
- SpringBoot14-springboot核心-外部配置,日志配置,Profile配置
- 【SpringBoot】SpringBoot核心-外部配置
- 19-SpringBoot——核心-Profile配置
- springboot 多profile配置
- SpringBoot学习笔记二(常规属性配置,类型安全配置,日志配置,Profile配置)
- SpringBoot外部配置
- springboot外部配置
- 【SpringBoot】SpringBoot核心-基本配置
- springboot 日志配置
- SpringBoot Logback日志配置
- springboot logback日志配置
- springBoot配置日志文件
- springboot logback 日志配置。
- Springboot logback日志配置
- SpringBoot+LogBack 日志配置
- SpringBoot日志配置
- springboot 日志配置
- SpringBoot13-springboot核心-基本配置
- HDU 1004 Let the Balloon Rise
- Java 数据类型(一)
- bzoj 4612: [Wf2016]Forever Young
- 单例模式
- HQL中的select子句
- SpringBoot14-springboot核心-外部配置,日志配置,Profile配置
- JS序列化
- OpenCV 图像金字塔 pyrDown 和pyrUp函数
- 86. Partition List
- Android官方提供的支持不同屏幕大小的全部方法
- 寻找最大数(三)
- Invalid argument looking up property
- MyEclipse IDE中高效应用Hibernate
- win10+VS2015+CPU-Only安装与配置Caffe