SpringBoot

发布时间 2023-08-08 01:27:51作者: Rover20230226

扩展
SpringBoot:专门用于框架整合,简化开发

Mybatis 的四个一致
  EmpMapper(java mapper)(resources xml)
    路径一致、名一致、地址一致、返回值一致

——————————————————————————————————

《 约定优于配置 》
SpringBoot是对Spring的改善和优化,它基于约定优于配置的思想,提供了大量的默认配置和实现。
使用SpringBoot之后,程序员只需按照它规定的方式去进行代码的开发,无需再去编写一堆复杂的配置


SpringBoot 主要功能
  起步依赖 以功能化的方式将需要的依赖进行组合,通过以 start 的方式引入
  默认配置 实现了大量框架的默认配置项,程序员无需再进行手动配置
  内置Tomcat SpringBoot开发的程序无需进行tomcat部署,可直接运行

总之:SpringBoot可以快速构建庞大的企业级项目,并且尽可能的减少配置,让程序员去关注业务

——————————————————————————————————

* 做完了入门案例,我们应该会有下面这样几个疑问:

1. 我们的工程在引入`spring-boot-starter-web`依赖的时候,为什么没有指定版本
  版本锁定
    我们的项目继承了spring-boot-starter-parent父工程,它内部的父工程spring-boot-dependencies已经锁定了部分依赖的版本号,因此自己创建工程中无需再指定版本。

2. `spring-boot-starter-web`是个啥,为什么引入了它之后,就不需要再引入我们原来做spring开发的那一堆包了
  spring-boot-starter-web
    Spring框架核心、相关依赖和Tomcat
  起步依赖
    SpringBoot根据场景将各种依赖组装成一个个的集合(starter),我们根据功能引入指定的starter即可。

3. 我们的程序没有部署到tomcat,为什么就可以被访问
  内置Tomcat
    SpringBoot在中引入一个内置的Tomcat,故而我们无需将程序部署到Tomcat中即可运行。

4. 为什么我们访问程序的时候要用8080端口,谁定义的
  默认配置
    SpringBoot的大量配置都有默认值,如果我们不去写配置就可以使用默认的
  Tomcat默认端口 8080

在哪定义的?
  Maven下org.springframework.boot.autoconfigure
  META-INF文件的spring-configuration-metadata.json
能不能改?
  自定义配置

——————————————————————————————————

自定义配置
application.properties
application.yaml
application.yml

生效优先级: properties > yml(主流) > yaml

1、YAML介绍:一种数据序列化格式
2、语法
  # 大小写敏感
  # 使用缩进表示层级关系
  # 缩进的空格数目不重要,但是相同层级的元素必须左侧对齐
  # 参数值和冒号之间必须有空格
  # # 表示注释,从这个字符一直到行尾,都会被解析器忽略
3、数据格式
  # 对象:键值对的集合
  user:
    username: '张三'
    password: '123'
    addressList: # 数组:一组按次序排列的值
    - '北京'
    - '上海'
    - '广州'
4、读取配置
* 方式1: @Value (了解)
  此注解是Spring框架提供的,用来读取配置文件中的属性值并逐个注入到Bean对象的对应属性中

* 方式2: @ConfigurationProperties(掌握)
  此注解是SpringBoot框架提供的,用来快速将配置文件中的属性值批量注入到某个Bean对象的多个对应属性中

——————————————————————————————————

后端实现步骤(java)
表示层(controller)
1、StudentController
  @RestController
  @Autowired

返回结果
Result(vo)
  @Data
  @NoArgsConstructor
  @AllArgsConstructor
  接收请求参数
    @GetMapping
    @PostMapping
    @PutMapping
    @DeleteMapping

业务层(service)
2、StudentService
3、StudentServiceImpl
  @Service


持久层(mapper)
4、StudentMapper
  @Mapper

启动(同级父类)
5、SpringBootDemoApplication
  @SpringBootApplication:把当前类变成启动类 启动类专用

配置(resources.static)
application.yaml
application-test.yaml