SpringBoot(一)【入门】(2)

简介: SpringBoot(一)【入门】

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

相关文章
|
3月前
|
Java 容器 Spring
SpringBoot入门(六)
SpringBoot入门(六)
|
3月前
|
监控 Java Spring
SpringBoot的入门(四)
SpringBoot的入门(四)
|
3月前
|
NoSQL Java Redis
SpringBoot的入门(一)
SpringBoot的入门(一)
|
3月前
|
Java Spring 容器
SpringBoot的入门(二)
SpringBoot的入门(二)
|
3月前
|
JSON Java 数据格式
SpringBoot入门(七)
SpringBoot入门(七)
|
3月前
|
消息中间件 NoSQL Java
SpringBoot的入门(五)
SpringBoot的入门(五)
|
3月前
|
Java 应用服务中间件 nginx
SpringBoot入门(九)
SpringBoot入门(九)
|
3月前
|
Java API 容器
SpringBoot入门(十)
SpringBoot入门(十)
|
3月前
|
JSON Java API
SpringBoot入门(八)
SpringBoot入门(八)
|
6月前
|
Java 应用服务中间件 数据库