SSM框架学习——SpringBoot之基础配置

her~~llo,我是你们的好朋友Lyle,是名梦想成为计算机大佬的男人!

博客是为了记录自我的学习历程,加强记忆方便复习,如有不足之处还望多多包涵!非常欢迎大家的批评指正。

今天我们来学习SpringBoot的基础配置。

目录

一、配置格式

自动提示功能消失解决方案

二、yaml格式

YAML文件扩展名:

yaml语法规则:

yaml数组数据:

yaml数据读取

第一种:

第二种:

第三种:

三、多环境开发配置

yml格式

properties文件多环境启动

多环境启动命令格式 

带参数启动SpringBoot

参数加载优先顺序

Maven与SpringBoot多环境兼容


一、配置格式

SpringBoot提供了多种属性配置方式

  • application. properties
server.port=80
  • application.yml
server:
  port: 81
  • application.yaml
server:
  port: 82

SpringBoot配置文件加载顺序(了解):


application.properties > application.yml > application.yaml

自动提示功能消失解决方案

SSM框架学习——SpringBoot之基础配置_第1张图片

SSM框架学习——SpringBoot之基础配置_第2张图片

SSM框架学习——SpringBoot之基础配置_第3张图片

之后选中配置文件OK即可。再次回到配置文件中进行测试。 

二、yaml格式

YAML (YAML Ain't Markup Language) ,一种数据序列化格式

优点:

  • 容易阅读
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式

YAML文件扩展名:

  • yml(主流)
  • yaml

yaml语法规则:

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • #表示注释

核心规则:数据前面要加空格与冒号隔开

yaml数组数据:

数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

enterprise:
  name: ylm
  age: 20
  tel: 000000000
  subject:
    - Java
    - 前端
    - 大数据

yaml数据读取

application.yml中

lesson: JavaSE
enterprise:
  name: ylm
  age: 20
  tel: 000000000
  subject:
    - Java
    - 前端
    - 大数据

第一种:

使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名...….

@Value("${lesson}")
private String lesson;
@Value("${enterprise.name}")
private String name;
@Value("${enterprise.subject[0]}")
private String subject;

第二种:

封装全部数据到Environment对象

@Autowired
private Environment environment;

System.out.println(environment.getProperty("enterprise.name"));
System.out.println(environment.getProperty("enterprise.age"));

第三种:

自定义对象封装指定数据

@Component
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;
    @Override
    public String toString() {
        return "Enterprise{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", tel='" + tel + '\'' +
                ", subject=" + Arrays.toString(subject) +
                '}';
    }

    //此处省略get和set方法
}
@Autowired
private Enterprise enterprise;

System.out.println(enterprise);
   

三、多环境开发配置

yml格式

#设置使用哪个环境
spring:
  profiles:
    active: test

---
#开发环境
#推荐格式
spring:
  config:
    activate:
      on-profile:dev
server:
  port: 80


---
#生产环境
#过时格式
spring:
  profiles: pro
server:
  port: 81

---
#测试环境
spring:
  profiles: test
server:
  port: 82

properties文件多环境启动

主启动配置文件application.properties

spring.profiles.active=pro

环境分类配置文件application-pro.properties

server.port=80

环境分类配置文件application-dev. properties

server.port=81

环境分类配置文件application-test.properties

server.port=82

多环境启动命令格式 

带参数启动SpringBoot

注意:打包时要注意文件格式都设置为UTF-8,有乱码解决之后再打包

java -jar springboot.jar --spring.profiles.active=test
java -jar springboot.jar --server. port=88
java -jar springboot.jar --server. port=88 --spring. profiles.active=test

参数加载优先顺序

参看

​​​​​​Core Features (spring.io)icon-default.png?t=M666https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config

Maven与SpringBoot多环境兼容

①Maven中设置多环境属性

    
        
            dev
            
                dev
            
        
        
            pro
            
                pro
            
            
                true
            
        
        
            test
            
                test
            
        
    

②SpringBoot中引用Maven属性

#设置使用哪个环境
spring:
  profiles:
    active: ${profile.active}

---
#开发环境
spring:
  config:
    activate:
      on-profile:dev
server:
  port: 80


---
#生产环境
spring:
  profiles: pro
server:
  port: 81

---
#测试环境
spring:
  profiles: test
server:
  port: 82

Maven指令执行完毕后,生成了对应的包,其中类参与编译,但是配置文件并没有编译,而是复制到包中

 

解决思路:对于源码中非java类的操作要求加载Maven对应的属性,解析${}占位符

③对资源文件开启对默认占位符的解析


    org.apache.maven.plugins
    maven-resources-plugin
    2.6
    
        UTF-8
        true
    

Maven打包加载到属性,打包顺利通过

配置文件分类

SpringBoot中4级配置文件
1级: file : config/application.yml  【最高】
2级: file : application.yml
3级: classpath: config/ application.yml

4级: classpath: application.yml  【最低】
 

注:classpath代表在IDEA中编写的,file代表打包后在包里的添加的

作用:

  • 1级与2级留做系统打包后设置通用属性
  • 3级与4级用于系统开发阶段设置通用属性

结语: 

SpringBoot基础配置的学习到此结束,我是Lyle,我们下次继续学习用SpringBoot最后一小部分整合第三方技术。

你可能感兴趣的:(SSM框架学习,spring,boot,学习,java)