• springboot项目的配置和基本案例练习


    • 一.手动配置

    新建maven项目,导入依赖,不需要配置war,springboot内置了

    •  要使用springboot,首先继承其父亲
        1. <parent>
        2. <groupId>org.springframework.bootgroupId>
        3. <artifactId>spring-boot-starter-parentartifactId>
        4. <version>2.1.8.RELEASEversion>
        5. parent>
    •  然后导入pringboot的核心启动器依赖,包含了自动配置,日志和yaml
        1. <dependency>
        2. <groupId>org.springframework.bootgroupId>
        3. <artifactId>spring-boot-starterartifactId>
        4. dependency>
    • 然后导入支持web开发的依赖,这里依赖里面包括了tomacat,spring-webmvc
      •  
        1. <dependency>
        2. <groupId>org.springframework.bootgroupId>
        3. <artifactId>spring-boot-starter-webartifactId>
        4. dependency>
    •  新建一个启动类BootApp,运行启动类之后,不会直接跳转到页面的,需要我们自己去地址栏输入网址,注意括号里面是逗号,不是点
        1. package com.pro;
        2. import org.springframework.boot.SpringApplication;
        3. import org.springframework.boot.autoconfigure.SpringBootApplication;
        4. /**
        5. * springboot 的启动类
        6. */
        7. @SpringBootApplication
        8. public class BootApp {
        9. public static void main(String[] args) {
        10. SpringApplication.run(BootApp.class,args);
        11. }
        12. }
    •  控制层注解是RestController
        1. package com.pro.controller;
        2. import org.springframework.web.bind.annotation.GetMapping;
        3. import org.springframework.web.bind.annotation.RestController;
        4. @RestController
        5. public class HelloController {
        6. @GetMapping("/hai")
        7. public String hai(){
        8. return "hello world";
        9. }
        10. }

    •  如果我们没有导入下面这个插件,jar包会很小,加入之后大小就会正常,大小正常之后,我们就可以打开cmd命令行窗口,执行java - jar包名称
        1. <build>
        2. <plugins>
        3. <plugin>
        4. <groupId>org.springframework.bootgroupId>
        5. <artifactId>spring-boot-maven-pluginartifactId>
        6. plugin>
        7. plugins>
        8. build>

    二.自动配置:建完项目,我们上面手动配置的东西,都给我们配好了

    • 新建项目的时候,这样建 

    • springboot里面有三种配置文件:peoperties,yml,yaml

    • application.properties

    • *application.yml:

     yml当中系统提供的数据,和自定义的数据赋值,以及在controller里面的取值方式

    • 第一种:@Value
      1. #系统提供的,我们引出来,填值就可以了
      2. server:
      3. port: 9999
      4. servlet:
      5. context-path: /boot2
      6. #自定义的配置数据,也可以在这里配置,在controller里面如何获取?
      7. #字符串
      8. dd: 俊俊
      9. #对象
      10. person:
      11. name: zs
      12. #数组
      13. address:
      14. - hz
      15. - cq
      16. #单,双引号,有不同的含义,双引号识别换行,会换行,单引号忽略换行
      17. msg: 'hello \n world'
      18. msg1: "hello \n world1"
      19. #引用已经定义的名称
      20. mmssgg: hello${dd}
      21. mmssgg1: 'hello ${dd}'
    • controler中取:

      1. package com.pro.controller;
      2. import org.springframework.beans.factory.annotation.Value;
      3. import org.springframework.web.bind.annotation.GetMapping;
      4. import org.springframework.web.bind.annotation.RestController;
      5. @RestController
      6. public class HelloController {
      7. @Value("${dd}")
      8. private String dd;
      9. @Value("${person.name}")
      10. private String perName;
      11. @Value("${address[0]}")
      12. private String address;
      13. @Value("${msg}")
      14. private String msg;
      15. @Value("${msg1}")
      16. private String msg1;
      17. @Value("${mmssgg}")
      18. private String mmssgg;
      19. @Value("${mmssgg1}")
      20. private String mmssgg1;
      21. @GetMapping("/hai")
      22. public String hai(){
      23. return "hello world"+perName+"=="+address+"=="+msg+"=="+msg1+"=="+mmssgg+"=="+mmssgg1;
      24. }
      25. }

    • 第二种:@Autowired

    • 第三种:这种在编程过程中经常会用到
    • 在properties包下面新建一个PersonConfigurationProperties类

    • 系统提供的数据在编写时会有提示,但是我们自己的是没有提示的,为了在编写自定义数据的时候能够有提示,我们需要导入一个依赖
      1. <dependency>
      2. <groupId>org.springframework.bootgroupId>
      3. <artifactId>spring-boot-configuration-processorartifactId>
      4. <version>2.1.7.RELEASEversion>
      5. <optional>trueoptional>
      6. dependency>

      在导入依赖,下载的时候可能会报这个错

    •  

       

    • 第三种方式在于可以对对象的多个属性同时赋值
    •  因此,咱们第三种方式也就出来了,和其他两种的区别:
    • 前两种主要是针对单个数据去赋值,如果是对象有多个属性,就没法赋值了

    • 第三种针对对象的多个属性可以赋值

       

     三.项目的三种状态:生产,测试,上线(正常运营)

    •  
    • 配置文件application.properties指定执行哪个配置文件
    • yml配置文件指定使用哪个配置文件(这里有地方要注意)
    • 如果在配置文件中没有指定,那么默认是8080
    • 第三种指定方式:
    • 第四种方式

    •  优先级:properties>yml>yaml
    • 指定配置文件时:
      • 第三第四种方式优先级高于前者(自己测出来的)
      • 第一种和第二种同时都指定,但是指定不一样时,第一种优先级高。

  • 相关阅读:
    MyBioSource豚鼠γ-谷氨酰转移酶1 ELISA试剂盒方案
    代码随想录训练营二刷第五十八天 | 583. 两个字符串的删除操作 72. 编辑距离
    后端防接口被刷
    安全驱动怎么设计(一)
    【中间件系列】Kafka 与 RocketMQ几件事
    四平巨元无线监控解决方案
    go语言切片Slice和数组Array对比panic: runtime error: index out of range问题解决
    SpringAOP详解
    Windows AppData介绍
    css flex 布局换行
  • 原文地址:https://blog.csdn.net/qq_60555957/article/details/126845719