SpringBoot学习笔记

发布时间 2023-03-22 21:13:24作者: better_tomorrow

SpringBoot

快速入门

  • image-20220816211715012

打包boot程序并给其他人运行

  • image-20220814195955961
  • image-20220814200054242
  • image-20220814202617236
    • 通过这个插件可以将maven项目打成jar包(普通maven项目也可以打成jar包,但是设置这个插件以后这个jar包就变成了可以运行的jar包,并且在打包的时候会吧直接和间接的依赖都包含进去,以便可以直接运行)

配置文件

  • 三种设置端口的方法

  • 这三个配置文件的优先级顺序是.properties高于.yml高于.yaml

  • image-20220817151933757

解决自己创建的yml或yaml不会自动提示的问题

  • image-20220817152304481
  • image-20220817152359006
  • image-20220817152458113

yaml格式

  • image-20220817153453304

  • image-20220817154152738

  • image-20220817154015479

  • image-20220817154206129

  • server:
      port: 80
    #  表示控制台打印的信息,如果是warn表示只打印警告的信息,如果是info表示打印通知类信息
    logging:
      level:
        root: info
    likes:
      - music
      - game
      - java
    

自定义对象数据警告解决方案

  • image-20220817160716446

多环境配置

在yml配置文件中配置多环境

  • image-20220817164612360
  • image-20220817165348602
  • image-20220817165453760

在.properties配置文件中配置多环境

  • image-20220817165219253

分环境运行的方法

  • java -jar bootTest01_quickstart-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
  • 就是将项目先clean后package,然后在对应的jar包的路径前边输入cmd,然后通过java -jar bootTest01_quickstart-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev的方法运行dev对应的环境(spring.profiles.active=dev对应的就是yml文件中设置环境的代码)(就是可以通过--的方法修改配置文件的参数),还可以修改多个参数 --修改1 --修改2
  • image-20220817171757991
  • image-20220817171940701
  • image-20220817172211865
  • image-20220817172008080
  • image-20220817172340525

Maven和yml中的配置环境兼容问题

  • 就是通过在maven的pom文件中配置多环境,然后在yml中激活的环境设置成从Maven中获取的,这样就可以将两个配置兼容起来了(需要配置maven-resources-plugin插件 pom中的配置文件才能干预到yml文件)
  • image-20220818182827627
  • image-20220818182904719

配置文件相关知识

  • 在resource文件夹中的config中的配置文件的优先级是高于外边配置文件的优先级的
  • 在生成的jar包所在的目录设置的配置文件的优先级高于在项目里设置的配置文件(这样可以在使用的时候修改对应的端口)
    • image-20220818211000810
  • 在生成jar包的目录里边新建config文件夹,然后在里边设置yml文件,这个yml文件的优先级是最高的(config中可能会让新建一个文件,这是一个bug(在2.5.0和2.4.6中的bug),随意新建一个文件就可以了)
  • 类路径下是在resource文件夹中修改的,文件路径是在jar包所在的目录上创建的
    • image-20220818211726281

修改boot项目的版本

  • image-20220818212424509
  • 刷新完可能不能进入上边的artifactId中,等一会再尝试或者到仓库中看看有没有对应的文件
  • G:\rj2\maven\repository\org\springframework\boot\spring-boot-starter-parent(所在的路径)

SpringBoot测试时的配置设置问题

  • SpringBootJunitTestApplication 新建boot项目的时候有一个类,在boot项目执行的时候会吧这个类所在的包及其子包扫描一遍,然后在运行测试类的时候会加载那个配置类,配置类里边SpringBoot中已经将相关配置都配置好了(想自动加载初始的配置类需要test中的测试类和初始配置类在相同的目录结构下)
  • 如果测试类所在的目录和初始配置类不在相同的目录结构下,就需要通过SpringBootTest注解加载对应的类

SpringBoot整合SSM

  • 整合Mybatis时注意在dao类上边加上Mapper的注解,因为boot项目没有在Spring配置类中配置对dao包的扫描

  • #    serverTimezone=UTC表示设置时区,在boot的2.4.2及以前的版本中需要设置这个
     url: jdbc:mysql://localhost:3306/db1?useSSL=false&serverTimezone=UTC
    
  • 静态资源直接放到static的文件夹中就可以了,不用设置过滤器就可以直接访问

遇到的各种问题

如果配置文件中有中文,打包报错解决办法

  • image-20220817170935019

SpringBoot项目中没有parent标签的原因

  • 使用了阿里云的景象创建的boot项目,官网的是采用继承的parent标签。阿里云是直接通过引用依赖,所以看不到parent标签

点击spring-boot-starter-parent进不去

  • 重新创建低版本的项目(创建的是2.6.11),感觉主要是之前创建项目的时候出现问题了

spring-boot-dependencies里边好多红

  • 使用的是阿里云镜像创建的项目,没有吧依赖自动下载

在maven的pom文件中配置的多环境和yml中配置的多环境不匹配(就是yml文件中active: ${profile.active}没有赋值)的原因

  • boot版本问题,我换了一个版本就成功了