Spring-Boot
一、Spring Boot初级:
1. Spring Boot 入门
1.1 什么是Spring Boot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。有了它,你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,而不用在Spring的配置上多花功夫,甚至完全不用配置。
1.2 Spring Boot特点
1)Spring Boot 设计目的是用来简化新Spring 应用的初始搭建以及开发过程。
2) 嵌入的 Tomcat,无需部署 WAR 文件
3)Spring Boot 并不是对 Spring功能上的增强,而是提供了一种快速使用 Spring 的方式。
1.3 Spring Boot的使用
1.3.1 Spirng Boot构建maven项目
1.3.2 注入 SpringBoot启动坐标
例:spring-web
1.3.3 SpringBoot启动器。
所谓的 springBoot 启动器其实就是一些 jar 包的集合。SprigBoot 一共提供 44 启动器。
1)spring-boot-starter-web
支持全栈式的 web 开发,包括了 romcat 和 springMVC 等 jar
2) spring-boot-starter-jdbc
支持 spring 以 jdbc 方式操作数据库的 jar 包的集合
3)spring-boot-starter-redis
支持 redis 键值存储的数据库操作
1.3.4 示例:返回浏览器json格式的字符串
1.3.4.1 创建项目
13.4.2 导入启动器,修改JDK版本
13.4.3 编写controller
1.3.4.4 编写启动类
注意:启动类存放的位置。启动类可以和 controller 位于同一个包下,或者位于 controller 的上一级包中,但是不能放到 controller 的平级以及子包下。
1.3.4.5 测试
1.3.5 自定义banner
1.3.5.1 什么是banner?
横幅广告(Banner Ad.)是网络广告最早采用的形式,也是目前最常见的形式。横幅广告又称旗帜广告,它是横跨于网页上的矩形公告牌,当用户点击这些横幅的时候,通常可以链接到广告主的网页。
1.3.5.2 如何编写banner
1)banner生成网站:http://www.bootschool.net/ascii
2).将下载好的banner.txt放在项目的类路径下:src/main/resources
3)效果生成
1.3.6 springboot的全局配置文件
1)、application.properties
2)、application.yml
a、“.”变成":"
b、"="变成": "
c、空格缩进
1.3.7 springboot的两种发布方式
1.3.7.1 jar方式发布
1) 在原有的maven的jar项目下导入插件
2)、项目右击,Maven install
3)在target目录下降生成jar包拷贝到磁盘
4) 按shift+右击 ,选择:在此处打开命令敞口
5)输入命令:cmd:Java -jar xxx.jar
6)测试
1.3.7.2 war方式发布
1)设置打包方式为war:
2)设置tomcat启动器的依赖范围:provided,意思为打包时不带此坐标相关的jar包
3)设置入口:
4)项目右击,Maven install
5)将生成war包手动添加到第三tomcat的webapp目录下
6) 启动tomcat,查看doc状态,测试项目
2. SpringBoot整合Web开发
2.1 SpringBoot整合 Servlet
2.1.1 基于注解的方式
2.1.1.1 编写servlet类
2.1.1.2 编写启动类
2.1.2 基于方法的方式
2.1.2.1 编写servlet类
2.1.2.2 编写启动类
2.2. SpringBoot整合 filter
2.2.1 基于注解的方式
2.2.1.1 编写filter类
2.2.1.2 编写启动类
2.2.2 基于方法的方式
2.2.2.1 编写filter类
2.2.2.2 编写启动类
2.3 SpringBoot整合 litsener
2.3.1 基于注解的方式
2.3.1.1 编写filter类
2.3.1.2 编写启动类
2.3.2 基于方法的方式
2.3.2.1 编写filter类
2.3.2.2 编写启动类
2.4 访问静态资源
注意:静态资源必须放在classpath/static 的目录或者必须放在在 src/main/webapp的跟目录下
2.5 Spirng Boot 文件上传
2.5.1 编写文件上传的html
2.5.2 编写文件上传的Controller
2.5.3. 编写启动类
2.5.4 测试
2.5.5 可能出现的异常
Spring Boot:The field file exceeds itsmaximum permitted size of 1048576 bytes.
原因: 显示文件的大小超出了允许的范围。官方文档如下:
65.5 Handling Multipart File Uploads
Spring Boot embraces the Servlet 3
javax.servlet.http.Part API to support uploading files. By default Spring Boot
configures Spring MVC with a maximum file of 1Mb per file and a maximum of 10Mb
of file data in a single request. You may override these values, as well as the
location to which intermediate data is stored (e.g., to the /tmp directory) and
the threshold past which data is flushed to disk by using the properties
exposed in the MultipartProperties class. If you want to specify that files be
unlimited, for example, set the multipart.maxFileSize property to -1.The
multipart support is helpful when you want to receive multipart encoded file
data as a @RequestParam-annotated parameter of type MultipartFile in a Spring
MVC controller handler method.
文档说明表示,每个文件的配置最大为1Mb,单次请求的文件的总数不能大于10Mb。要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
解决办法:编写全局配置文件application.properties
multipart.maxFileSize= 10Mb
multipart.maxRequestSize=100Mb
Spring Boot1.4版本后配置更改为:
spring.http.multipart.maxFileSize = 10Mb
spring.http.multipart.maxRequestSize=100Mb
Spring Boot2.0之后的版本配置修改为:
spring.servlet.multipart.max-file-size = 10MB
spring.servlet.multipart.max-request-size=100MB
3. SpringBoot视图层技术
3.1 整合jsp
3.1.1 创建项目
3.1.2,修改 pom 文件,添加坐标
3.1.3 创建 springBoot的全局配置文件,application.properties
3.1.4 创建 pojo类
3.1.5 创建 Controller
3.1.6创建showUsers.html
3.1.7 创建启动类
3.2 整合freemarker
3.2.1 创建项目
3.2.2 pom 添加坐标
3.2.3 创建pojo类(同jsp)
3.2.4 创建controller类(同jsp)
3.2.5 创建freemarker文件
注意: springBoot 要求模板形式的视图层技术的文件必须要放到 src/main/resources 目录下必
须要一个名称为 template
3.3 整合Thymeleaf(spring-boot推荐 重点)
3.3.1 什么是thymeleaf?
thymeleaf是java语言编写的模板引擎系统,即基于“模板(html+thymeleaf语法)”和“数据”能够生成静态的html
3.3. 2、为什么要使用thymeleaf?
a、jsp执行过程:jsp-->servlet.java-->servlet.class-->servlet(out.print('html')),速度慢。
b、thymeleaf能生成静态页面,直接交给浏览器执行,速度快。
3.3.3 thymeleaf运行原理
引擎类:
模板test.html:
结果
3.3. 3 thymeleaf语法
1)th:text
在页面中输出值
2)th:value
可以将一个值放入到 input 标签的 value中
3.3.4 Thymeleaf内置对象
注意语法:
1,调用内置对象一定要用#
2,大部分的内置对象都以 s 结尾 strings、numbers、dates
a、strings
b,dates
c、numbers
数字格式化:${#numbers.formatDecimal(msg,0,2)
3.3.5 条件判断
3.3.5.1 th:if
3.3.5.2 th:switch
3.3.6 迭代遍历
3.3.6.1 迭代集合 map键值对
3.3.6.2 迭代集合list
3.3.7 取作用域的属性值
a.request:默认取得是request作用域的值
b.session:
c.application:
3.3.8 URL表达式
3.3.8 表达式语法:
基本语法:@{}
3.3.9 、相对路径
相对于项目的根: @{/}
相对于服务器的根: @{~/}
3.3.10 参数传递
url传参:@{/user/list(id=1,nam=zs)}
restful参数:@{/user/list/{id}/{nam}(id=1,nam=zs)}
3.3.11 示例
3.3.11.1 创建项目
3.3.11.2 添加启动器
3.3.11.3 创建pojo类
3.3.11.4 创建controller类
3.3.11.5 创建html页面
3.3.11.6 创建启动类
3.3.11.7 测试