我的博客:兰陵笑笑生,欢迎浏览博客!
上一章 SpringBoot入门实践(一)-快速入门当中,我们快速的新建了一个SpringBoot工程,实现了浏览器请求一个路径,要求运行的服务返回指定的结果。本章我将整理一篇关于配置文件的介绍。
我们开发的项目少不了各种各样的配置,在以往我使用过静态的类来放一些项目中使用到的一些配置值。也使用过properties 文件存储一些值。当然这些都是可以的。SpringBoot建议我们采用yml这样的文件来存储。说到YAML网上有很多的介绍,我们只要记住YAML文件具有很强的表达能力和扩展性就够了。对,就是容易读懂。还记得我们生成的项目结构么? 在项目resource目录下:会有一个 application.properties 文件。当然我们可以修改成application.yml文件。
基本语法:
springBoot的端口配置,springBoot项目的默认端口是8080,即如果我们不在配置文件中配置,那么端口就是8080.我们将端口修改成8081
server:
port: 8081
基本语法:K-V 键-值对方式,port是键,8081是值。以空格的缩进来表示层级关系。
即port是server下的port。属性和值存在大小写敏感的。
字面量
值默认是不用加”” 号的,加了双引号不转义字符串的特殊字符。单引号,会转义字符串的特殊字符。
对象、map、数组在YAML文件中表示方法
在开发的时候,我们经常为一些对象配置一些值。比如以User类为例:
/**
* @Component 表示 springBoot会启动加载这个类,必须是一个组件才能获取配置文件的值。
* @ConfigurationProperties 绑定YMAL的配置到该类上。
* prefix 表示在配置文件中去:user开头的
*/
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private String userName;
private int age;
private Map<String,Object> maps;
private List<Object> lists;
.....
}
application.yml配置
server:
port: 8081
user:
userName: 王宝强
age: 48
maps: { k1:v1,k2:v2 }
lists:
- 马蓉
- hello 树先生
测试一下
@Controller
public class HelloController {
@Autowired
User user;
@ResponseBody
@RequestMapping("/user")
public User user(){
return user;
}
}
@value的注解取值
除了给JAVA bean注入属性外,我们还可以通过@value获取数据。
@Controller
public class YAMLTest {
@Value("${user.userName}")
private String userName;
@ResponseBody
@RequestMapping("/test1")
public String test1(){
return "姓名:"+userName;
}
}
测试结果
在实际的项目开发中,以上两种方式都经常用到。
常用的springBoot配置属性
spring:
profiles:
active: dev
用来切换配置文件的:
我们可以在resource目录下分别在添加applicaition-dev.yml和application-test.yml
在开发中在不同的环境下我们的配置属性值是不同的,比如数据库的配置,如果手动切换实在是太麻烦了,为此springBoot提供了这样一个特别实用的功能,通过spring.profiles.active这样的属性来切换环境,注意名称必须是application-{名称}.yml 或
application-{名称}.properties 文件
spring:
application:
name: helloApp
用来描述应用程序的名称的。
在整个springBoot系列中,有很多配置,这里只是简单的列举了2个,在实际的开发中,包括数据库配置、日志配置、缓存配置,自定义配置等非常之多,配置的贡献主要来自于不同的jar中,以具体的jar项目为准。
我们可以参考springBoot的官方网站:官方网址,这里有很多的配置信息。这里面有很多介绍。
本文由博客一文多发平台 OpenWrite 发布!