SpringBoot(一)【入门】(1)https://developer.aliyun.com/article/1534226
2、基础配置
2.1、配置文件格式(3种)
2.1.1、修改服务器端口
现在我们启动的项目端口默认就是 8080,那如果我们要修改的话,就需要进行配置。
- applicantion.properties
server.port=80
- 创建一个 application.yml (SpringBoot 项目中我们的配置文件都用 application.x 的格式)
server: port: 80
注意:port: 和 80 之间一定要有空格
- 创建一个 application.yaml(相比较 application.yml 只是扩展名不同,内容都一样)
server: port: 80
Idea 设置 SpringBoot 配置文件提示功能:
我们之后写 application.yml 更多一些,如果三个文件都存在,则优先级: application.properties > application.yml > application.yaml 。
2.1.2、yaml
- YAML (Ain't Markup Language),一种数据序列化格式
- 优点:
- 容易阅读
- 容易与脚本语言交互
- 以数据为核心,重数据轻格式
- YAML 扩展名
- .yml(主流)
- .yaml
语法规则:
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾用冒号结束
- 使用缩进表示属性层级关系,同层级左侧对齐,只允许使用空格(不允许 Tab 键)
- 属性值前面必须添加空格
- # 表示注释
- 数组数据使用 '-' 表示开始
2.1.3、yaml 数据读取方式(3种)
先在 application.yml 中添加下面的内容
student: name: tom age: 15 subject: - Math - English - Chinese
(1)@Value (直接读取)
@Value("${student}") private String student; @Value("${server.port}") private Integer port; @Value("${student.subject[0]}") private String subject0;
(2)Environment (封装后读取)
@Autowired private Environment environment; // 用的时候直接调用 System.out.println(environment.getProperty("server.port")); System.out.println(environment.getProperty("student.subject[0]"));
(3)实体类封装(常用)
在 domain 包下创建一个 Student 对象,这个对象必须被 SpringBoot 管理,所以使用 @Component 注解来标识;而且这里需要指定配置名称,所以用 @ConfigurationProperties 来表示属性名:
@Component @ConfigurationProperties(prefix = "student") public class Student { private String name; private Integer age; private String[] subject; @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", subject=" + Arrays.toString(subject) + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String[] getSubject() { return subject; } public void setSubject(String[] subject) { this.subject = subject; } }
用的时候直接用 student 对象的 get 方法即可。
@Autowired private Student student; // 用的时候调用get方法 System.out.println(student.getAge());
包括之后我们配置 Mybatis 也会通过这种方式来配置。
如果遇到对象封装警告,需要导入 Maven 依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional>
2.2、多环境开发
在不同的环境下我们往往使用的配置不同,那我们应该怎么设置?
2.2.1、yaml 文件多环境启动
通过 "---" 来区分不同的环境,通过 spring: profiles: active 来指定我们上线时使用的环境信息:
spring: profiles: active: dev --- # 开发环境 spring: profiles: dev server: port: 85 --- # 生产环境 spring: profiles: pro server: port: 86 --- # 测试环境 spring: profiles: test server: port: 87
这里的配置过时了,我们也可以换用这种格式:
spring: config: activate: on-profile: dev server: port: 85
2.2.2、application.properties 文件多环境启动
spring.config.activate.on-profile=dev
创建 application-dev.properties:
server.port=85
创建 application-dev.properties:
server.port=85
SpringBoot(一)【入门】(3)https://developer.aliyun.com/article/1534229