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


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

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

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

    目录

    一、配置格式

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

    二、yaml格式

    YAML文件扩展名:

    yaml语法规则:

    yaml数组数据:

    yaml数据读取

    第一种:

    第二种:

    第三种:

    三、多环境开发配置

    yml格式

    properties文件多环境启动

    多环境启动命令格式 

    带参数启动SpringBoot

    参数加载优先顺序

    Maven与SpringBoot多环境兼容


    一、配置格式

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

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

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


    application.properties > application.yml > application.yaml

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

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

    二、yaml格式

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

    优点:

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

    YAML文件扩展名:

    • yml(主流)
    • yaml

    yaml语法规则:

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

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

    yaml数组数据:

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

    1. enterprise:
    2. name: ylm
    3. age: 20
    4. tel: 000000000
    5. subject:
    6. - Java
    7. - 前端
    8. - 大数据

    yaml数据读取

    application.yml中

    1. lesson: JavaSE
    2. enterprise:
    3. name: ylm
    4. age: 20
    5. tel: 000000000
    6. subject:
    7. - Java
    8. - 前端
    9. - 大数据

    第一种:

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

    1. @Value("${lesson}")
    2. private String lesson;
    3. @Value("${enterprise.name}")
    4. private String name;
    5. @Value("${enterprise.subject[0]}")
    6. private String subject;

    第二种:

    封装全部数据到Environment对象

    1. @Autowired
    2. private Environment environment;
    3. System.out.println(environment.getProperty("enterprise.name"));
    4. System.out.println(environment.getProperty("enterprise.age"));

    第三种:

    自定义对象封装指定数据

    1. @Component
    2. @ConfigurationProperties(prefix = "enterprise")
    3. public class Enterprise {
    4. private String name;
    5. private Integer age;
    6. private String tel;
    7. private String[] subject;
    8. @Override
    9. public String toString() {
    10. return "Enterprise{" +
    11. "name='" + name + '\'' +
    12. ", age=" + age +
    13. ", tel='" + tel + '\'' +
    14. ", subject=" + Arrays.toString(subject) +
    15. '}';
    16. }
    17. //此处省略get和set方法
    18. }
    1. @Autowired
    2. private Enterprise enterprise;
    3. System.out.println(enterprise);

    三、多环境开发配置

    yml格式

    1. #设置使用哪个环境
    2. spring:
    3. profiles:
    4. active: test
    5. ---
    6. #开发环境
    7. #推荐格式
    8. spring:
    9. config:
    10. activate:
    11. on-profile:dev
    12. server:
    13. port: 80
    14. ---
    15. #生产环境
    16. #过时格式
    17. spring:
    18. profiles: pro
    19. server:
    20. port: 81
    21. ---
    22. #测试环境
    23. spring:
    24. profiles: test
    25. server:
    26. 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中设置多环境属性

    1. <profiles>
    2. <profile>
    3. <id>devid>
    4. <properties>
    5. <profile.active>devprofile.active>
    6. properties>
    7. profile>
    8. <profile>
    9. <id>proid>
    10. <properties>
    11. <profile.active>proprofile.active>
    12. properties>
    13. <activation>
    14. <activeByDefault>trueactiveByDefault>
    15. activation>
    16. profile>
    17. <profile>
    18. <id>testid>
    19. <properties>
    20. <profile.active>testprofile.active>
    21. properties>
    22. profile>
    23. profiles>

    ②SpringBoot中引用Maven属性

    1. #设置使用哪个环境
    2. spring:
    3. profiles:
    4. active: ${profile.active}
    5. ---
    6. #开发环境
    7. spring:
    8. config:
    9. activate:
    10. on-profile:dev
    11. server:
    12. port: 80
    13. ---
    14. #生产环境
    15. spring:
    16. profiles: pro
    17. server:
    18. port: 81
    19. ---
    20. #测试环境
    21. spring:
    22. profiles: test
    23. server:
    24. port: 82

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

     

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

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

    1. <plugin>
    2. <groupId>org.apache.maven.pluginsgroupId>
    3. <artifactId>maven-resources-pluginartifactId>
    4. <version>2.6version>
    5. <configuration>
    6. <encoding>UTF-8encoding>
    7. <useDefaultDelimiters>trueuseDefaultDelimiters>
    8. configuration>
    9. plugin>

    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最后一小部分整合第三方技术。

  • 相关阅读:
    CSDN推出【云IDE】,几秒完成开发环境配置,今后可以在浏览器里使用VS Code了
    2150. 找出数组中的所有孤独数字-快速排序
    数据库update(动态更新)-SqlServer
    Java多线程解密:揭秘多线程的奥秘,给你全面了解与实践的权威指南
    kali渗透测试_HTTPS攻击
    01-shell编程规范与变量
    语句覆盖就是设计测试用例,运行测试程序,使得每一可执行语句至少执行一次。 判定覆盖:设计测试用例,使程序中的每个逻辑判定的取真和取假的分支至少经历一次。条件覆盖基本思想:设计用例,使每个判断中的每个
    第3章:运行时数据区概述及线程 详细详解
    volatile
    [附源码]Python计算机毕业设计Django姜太公渔具销售系统
  • 原文地址:https://blog.csdn.net/weixin_58035422/article/details/125979968