目录
1.对SpringBoot的认识
1.1.什么是SpringBoot
1.2.SpringBoot解决了哪些痛点
1.3.SpringBoot有哪些特性
2. 入门案例
2.1.新建module
2.2.pom.xml添加相关依赖
2.2.1.添加父工程坐标
2.2.2.添加web启动器
2.2.3.管理jdk版本
2.3.启动类
2.4.编写controller
2.5.启动测试
3. Spring全注解配置和属性注入
3.1.spring全注解配置
3.1.1.连接池在spring全注解配置中是如何配置的
3.2.SpringBoot的属性注入读取配置完文件
3.3.springboot更优雅的注入
4. 自动配置原理
4.1.@SpringBootApplication
4.2.@SpringBootConfiguration
4.3.@ComponentScan
4.4.@EnableAutoConfiguration
4.5.默认配置原理
4.6.总结
5.SpringBoot整合其它框架
5.1.整合SpringMVC
5.1.1.修改端口
5.1.2.访问静态资源
5.2.整合jdbc
5.2.1.引入依赖
5.2.2.配置连接池
5.3.整合mybatis
mybatis中生成mapper接口代理对象有两种方式
springboot中mapper的加载接口代理对象有两种方法
5.4.通用mapper? tk mybatis
6.Thymeleaf? [taim li:f]?
6.1.什么是Thymeleaf
6.2.springBoot整合Thymeleaf
?6.2.1.引入Thymeleaf启动器
?6.2.2.模板缓存
6.3.thymeleaf详解
6.3.1.thymeleaf表达式
6.3.2.表达式常见用法
6.3.3.常用th标签
?6.3.4.th标签基本用法
6.3.5.thymeleaf布局
7. Mybatis Plus
7.1.创建工程,引入依赖
7.2.配置文件application.yml
7.3.springboot启动类
?7.4.实体类
7.5.mapper接口
?7.6.注解解决表与实体类不一致问题
7.7.内置增删改查
7.8.分页
7.8.1.内置分页
7.8.2.自定义xml分页
7.8.3.pageHelper分页
springboot 是 spring 快速开发脚手架,通过约定大于配置的方式,快速构建和启动 spring 项目.
springboot根据我们项目中所引入的依赖,比如引入了springmvc构件,就会判断出是要进行springmvc的web开发,就会把springmvc的相关基本配置自动配置好了,不需要我们在xml中配置。 比如配置前端控制器DispatcherServlet、配置视图解析器、配置静态资源访问、处理器映射器、处理器适配器等一系列组件,
spring 的缺点:
1.复杂的配置
项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。
2.混乱的依赖管理
项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这是一个棘手的问题。并且,一旦选错了依赖的版本,随之而来的就是各种的不兼容的bug
spring boot 可以解决上面 2 个问题
快速开发 spring 应用的框架
内嵌 tomcat 和 jetty 容器,不需要单独安装容器,使用main方法就可以 直接启动发布一个 web应用
简化 maven 配置,通过继承 parent构件 ,一站式引入需要的各种依赖(启动器),简化依赖管理
通过 约定大约配置的方式可以实现基于注解的零配置思想
和各种流行框架, spring web mvc , mybatis , spring cloud 无缝整合
官网
总结
spring boot 是 spring 快速开发脚手架,通过约定大于配置,优化了混乱的依赖管理,和复杂的配置,让我们用java -jar方式,运行启动 java web 项目
需求:创建 HelloController, 在页面中打印 hello spring boot…
先新建一个空的工程:
设置 jdk 版本 :
新建一个 module :
使用 maven 来构建
然后填写项目坐标
项目结构:
SpringBoot 提供了一个名为 spring-boot-starter-parent 的构件,里面已经对各种常用依赖(并非全部)的版本进行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引入坐标即可!
为了让 SpringBoot 帮我们完成各种自动配置,我们必须引入 SpringBoot 提供的自动配置依赖,我们称为启动器 。因为我们是web 项目,这里我们引入 web 启动器
默认情况下, maven 工程的 jdk 版本是 1.5 ,而开发使用的是 11 ,因此这里我们需要修改 jdk 版本
4.0.0
com.bowei.springboot
springbootdemo
1.0-SNAPSHOT
11
org.springframework.boot
spring-boot-starter-parent
2.0.0.RELEASE
org.springframework.boot
spring-boot-starter-web
注意的是,我们并没有在这里指定版本信息。因为 SpringBoot 的父工程已经对版本进行了管理了。
Spring Boot 项目通过 main函数来启动的,我们需要创建一个启动类,编写 main 函数,这个启动类是固定的,后面会通过工具自动生成。
下面,就可以像以前那样开发SpringMVC的项目
运行 main函数,查看控制台,可以看到监听的端口信息
1 )监听的端口是 8080
2 ) SpringMVC 的映射路径是: /
3 ) /hello 路径已经映射到了 HelloController 中的 hello() 方法
打开页面访问: http://localhost:8080/hello
上面demo没有任何的配置,就可以实现一个SpringMVC的项目了,快速、高效。
但是没有任何的 xml ,那么如果要配置一个 Bean 该怎么办?比如我们要配置一个数据库连接池,
以前xml中需要这样配置
在Spring3.0开始,Spring官方就已经开始推荐使用java配置来代替传统的xml配置了
spring 全注解配置主要靠 java 类和一些注解,比较常用的注解有
@Configuration :声明一个类作为配置类,代替xml文件
@Bean :声明在方法上,将方法的返回值作为对象反转到 Spring 容器中管理,代替 标签
@value :属性注入
@PropertySource :指定外部属性文件,
下面测试spring全注解配置是如何读取到属性文件
首先引入 Druid 连接池依赖