扩展
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