[toc]
spring
- 一个开源框架(Spring Framework) 
- 轻量的控制反转IoC 
- 面向切面AOP的容器框架 
- 大小与开销两方面都是轻量的 
- Bean,它代表的就是由Spring管辖的对象 
- Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的一个 MVC 框架,而Spring Boot 是基于Spring的一套快速开发整合包 
- dependengcy: 用 mvc 选 spring web ,用 webFlux 选spring reactive web 
spring mvc
- 是spring的一部分 
- 主要用于开发WEB应用和网络接口,它是Spring的一个模块 
spring boot
web项目: Controller层:主要是对外提供接口 Service层:主要是处理业务逻辑 Dao层:主要是和数据库相关
层级结构 /src/main/java:项目Java源代码 /src/main/resources:放置项目静态资源和配置文件 /src/test/java:放置项目测试用例代码
Project是最顶级的结构单元,一个可以有多个Module 一般按功能划分module,模块之间彼此相互依赖,模块 src/main/java 下可以有多个包,一个包下可以有多个类 包(package):为了对类分目录管理
|- java
  |- com.hew.javaweb
    |_annotation:放置项目自定义注解
    |_aspect:放置切面代码
    |_config:放置配置类
    |_constant:放置常量、枚举等定义
      |__consist:存放常量定义
      |__enums:存放枚举定义
    |_controller:放置控制器代码
    |_filter:放置一些过滤、拦截相关的代码
    |_mapper:放置数据访问层代码接口
    |_model:放置数据模型代码
      |__entity:放置数据库实体对象定义
      |__dto:存放数据传输对象定义
      |__vo:存放显示层对象定义
    |_service:放置具体的业务逻辑代码(接口和实现分离)
      |__intf:存放业务逻辑接口定义
      |__impl:存放业务逻辑实际实现
    |_utils:放置工具类和辅助代码
创建独立的Spring应用程序,用于创建微服务;用于简化 Spring 应用从搭建到开发的过程;
- 自动配置
- 起步依赖
Artifact:可以当它为一个web项目
- 构建工具 Maven Gradle 
- spring framework -> spring boot -> spring cloud 
- Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,实质是一个基于http协议的web容器; Netty能通过编程自定义各种协议,因为netty能够通过codec自己来编码/解码字节流,完成类似redis访问的功能,这就是最大的不同 
- Servlet 是运行在Web服务器上的小程序,通过http协议和客户端进行交互 
- Optional 防止空指针提出的接口 
- 【spring-boot-starter-web】 在当下项目运行mvn spring-boot:run就可以直接启用一个嵌套了tomcat的web应用。如果没有提供任何服务的Cotroller,访问任何路径都会返回一个springBoot默认的错误页面 Whitelabel Error Page 
https://img.shields.io/badge/h-h-brightgreen
第三方包
- fastJson: 传入的对象要有 getter 方法
搭建工程
- 创建 Maven 项目
- 导入Spring Boot起步依赖
- 定义 Controller
- 编写引导类
- 启动测试
创建项目
下载 JDK https://www.oracle.com/java/technologies/downloads/#jdk18-windows
使用 Spring Initializr 创建
- 勾选相关设置 
- 等待安装依赖包 
- 进入 https://start.spring.io/ (说明 https://www.cainiaojc.com/springboot/springboot-initializr.html) 
- 勾选 
|- Project
  |- Maven Project
|- Language
  |- Java
|- Spring Boot
  |- 2.7.2  这里根据实际情况勾选
|- Project Metadata 修改默认名称等
  |- Group com.hew
  |- Artifact java-web
  |- Name java-web
  |- Package name com.hew.java-web
  |- Packaging
    |- Jar
  |- Java
    |- 18 这里根据下载的 JDK 选
|- Dependencies
  |- Spring Web  一般创建的是web项目
- 下载,将其移入放置项目的文件夹
- 在 IDEA 社区版直接打开 open 然后等待下载
IDEA 直接创建
- 选 Java Maven
- 选择JDK 选择java 版本
- 选 spring boot 版本
- 选 Spring Boot Dev tools + Spring Web + My Batis Framework + MySQL Driver
Spring boot 简单查询数据库步骤
- 建立实体类和数据库字段保持一致
- 建立 mapper 接口,定义操作数据库的动作
- 建立 mapper 的 xml 文件,写 sql 语句
- 建立 service 类 处理业务逻辑
- 在 controller中展示处理的结果
