Spring Boot介绍
1.Spring Boot的角色
- Spring Framework:JaveEE的框架
- Spring Boot:快速构建的Spring应用
- Spring Cloud:构建Spring Boot的分布式的环境
2.Spring Boot 2.0
- 编程语言:Java 8+ 、Kotlin(函数式编程语言)
- 底层框架:Spring Framwork 5.0.x
- 全新特性:Web Flux(编程模型,对Spring MVC的补充)
为什么选择Web Flux?
- 函数编程:Java 8 Lambda
- 响应编程:Reactive Streams
- 异步编程:Servlet 3.1 或 Asyc NIO
第一个Spring Boot项目
简单应用
- 编写REST程序
- 运行Spring Boot应用
- 使用HTTP请求工具:PostMan
场景说明
-
定义用户模型,包括属性:用户ID和名称
-
客户端发送POST请求,创建用户(Web MVC)
-
客户端发送GET请求,获取所有用户(Web Flux)
配置了Web Flux,默认嵌入式容器使用Jetty启动
PostMan模拟请求
find/all
构建方式、多模块和运行方式
构建应用-命令行方式
mvn archetype:generate -DinteractiveMode=false -DgroupId=com.imooc -DartifactId=first-app-by-maven -Dversion=1.0.0-SNAPSHOT
多模块Spring Boot项目
重构
- 调整主(父)工程类型(< packaging >)
- 创建子模块工程(< module >)
- 模型层:model
- 持久层:pesistence
- 表示层:web
- 子模块依赖管理(< dependencyManagement >)
主工程pom.xml中:由jar修改成pom
主工程右键创建Module
将主工程src下的目录及文件移动到web项目src下(根据提示选择move all),并验证是否允许成功
接着用同样的方式创建persistence层与model层,将文件分别移动到对应的层中
persistence层的pom文件添加对model的依赖
同理添加web层对persistence与model层的依赖
主项目的pom依赖内容
项目打包
项目目录下:mvn -Dmaven.test.skip -U clean package
需要制定mainClass
主项目pom文件中build标签中加configuration增加< mainClass >添加mian函数路径,并将build移动到web下的pom.xml中
jar包启动方式:java -jar web-0.0.1-SNAPSHOT.jar
打war包,在web层的pom中增加
<!-- 将 packaging 值 (默认:jar)调整成war -->
<packaging>war</packaging>
同时要在web下增加web.xml(mian路径下增加目录)
jar方式启动war:java -jar web-0.0.1-SNAPSHOT.war
运行模式
模式类型
- IDEA 方式
- JAR/WAR 方式
- Maven 插件方式
Maven插件方式
根目录下执行
mvn -Dmaven.test.skip -U clean install
web层(目录下)执行
mvn spring-boot:run
项目源码:https://github.com/88HaoHuai/Learning
first-app-demo:第一个Spring Boot项目
first-app-demo-step2:多模块Spring Boot项目