文章目录
- 【实战教程】SpringBoot全面指南:快速上手到项目实战(SpringBoot)
-
- 1. SpringBoot介绍
-
- 1.1 SpringBoot简介
- 1.2系统要求
- 1.3 SpringBoot和SpringMVC区别
- 1.4 SpringBoot和SpringCloud区别
- 2.快速入门
- 3. Web开发
-
- 3.1 静态资源访问
- 3.2 渲染Web页面
- 3.3 YML与Properties用法
- 3.4使用Freemarker模板引擎渲染web视图
- 3.5 使用thymeleaf渲染Web页面
- 4.数据库访问
-
- 4.1 springboot整合使用JdbcTemplate
- 4.2 springboot整合使用mybatis
- 4.3 springboot整合多数据源
- 5.事务管理
-
- 5.1 Springboot整合事务管理
- 5.2 SpringBoot分布式事务管理
- 6.整合热部署
-
- 6.1 Spring Boot集成lombok让代码更简洁
- 6.2 Spring Boot整合热部署框架
- 7.整合配置文件
-
- 7.1使用@value注解和@ConfigurationProperties注解
- 7.2配置文件占位符
- 7.3多环境配置和核心配置
- 8.日志管理
-
- 8.1使用logback记录日志
- 8.2使用log4j记录日志
- 8.3使用AOP统一处理Web请求日志
- 9.其他内容
-
- 9.1使用@Scheduled创建定时任务
- 9.2使用@Async实现异步调用
- 9.3全局捕获异常
- 9.4发布打包
【实战教程】SpringBoot全面指南:快速上手到项目实战(SpringBoot)
1. SpringBoot介绍
1.1 SpringBoot简介
- 能够帮助开发者实现快速整合第三方框架 (原理:Maven依赖封装)
- 去除xml配置 完全采用注解化 (原理:Spring体系中内置注解方式)
- 无需外部Tomcat、内部实现服务器(原理:Java语言支持内嵌入Tomcat服务器)
1.2系统要求
Java1.8及以上
Spring Framework 5.0及以上
本课程采用Java1.8版本、SpringBoot2.1.8版本
1.3 SpringBoot和SpringMVC区别
1.4 SpringBoot和SpringCloud区别
SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。
SpringMVC是控制层。
SpringCloud依赖与SpringBoot组件,使用SpringMVC编写Http协议接口,同时SpringCloud是一套完整的微服务解决框架。
2.快速入门
2.1创建一个Maven工程

2.2 pom文件引入依赖
讯享网作用
在pom.xml中引入,spring官方的解释叫什么stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。
spring-boot-starter-web作用
springweb 核心组件
2.3
是由 组合而成的
Rest 微服务接口开发中 rest 风格的数据传输格式为 json 格式,采用HTTP协议
在上加上 表示修饰该所有的方法返回格式,直接可以编写
接口
注意该注解是提供的哦!
2.4
该注解:作用在于让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置
这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。
2.5 的3种启动方式
方式一
讯享网
可以请求本类中的 url
启动主程序,打开浏览器访问,可以看到页面输出

方式二
讯享网
可以启动扫包范围下的所有类中的 url
方式三(推荐使用)
在启动类上直接加上即可
被 、、 注解所修饰,换言之 提供了统一的注解来替代以上三个注解
扫包范围:在启动类上加上注解,当前包下或者子包下所有的类都可以扫到。
3. Web开发
3.1 静态资源访问
在我们开发应用的时候,需要引用大量的、、图片等静态资源。
默认配置
默认提供静态资源目录位置需置于下,目录名需符合如下规则:
举例:我们可以在目录下创建,在该位置放置一个图片文件。启动程序后,尝试访问。如能显示图片,配置成功。
微服务项目
前后端分离
前端----vue----前端工程师
后端—springboot–后端工程师
3.2 渲染Web页面
—视图层 渲染我们页面
—业务逻辑层
—数据库访问层
渲染Web页面
在之前的示例中,我们都是通过来处理请求,所以返回的内容为对象。那么如果需要渲染页面的时候,要如何实现呢?
模板引擎 能够非常好的帮助seo搜索到该网页
在动态实现上依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。
提供了默认配置的模板引擎主要有以下几种:
- Thymeleaf
- FreeMarker
- Velocity
- Groovy
- Mustache
建议使用这些模板引擎,避免使用,若一定要使用将无法实现的多种特性,具体可见后文:支持JSP的配置
当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。
3.3 YML与Properties用法
支持两种配置方式,一种是文件,一种是。(都是在目录下)
使用可以减少配置文件的重复性。
例如:配置
例如:配置
在企业中方式用的是比较多的;
3.4使用Freemarker模板引擎渲染web视图
1.Maven依赖
2.后端代码
3.前端代码
在创建一个文件夹,用来存
4.Freemarker其他用法
配置
新建文件 (加粗提示对应的配置可以进行修改)
文件中使用符号替换方法
判断条件用法
freemarkerIndex02.ftl

list集合
freemarkerIndex03.ftl
3.5 使用thymeleaf渲染Web页面
1 .什么是thymeleaf
是一款用于渲染内容的模板引擎,类似,,等,它也可以轻易的与等框架进行集成作为应用的模板引擎。
2.Maven依赖
3.配置文件新增
新建文件
4.案例代码
在创建一个文件夹,用来存
5.高级写法
循环语句:
同上
If判断:
详细可以更多语法可以查看
4.数据库访问
4.1 springboot整合使用JdbcTemplate
1.pom文件引入
2.新增配置
3.数据库表结构
4.案例代码
App类
4.2 springboot整合使用mybatis
1.pom文件引入
2. 新增配置
3.案例代码
数据库表结构同上
同上
接口
App类


4.3 springboot整合多数据源
1.Maven相关依赖
2.数据库表结构
3.配置文件中新增两个数据源
备注:如果是配置多数据源 ,报如下错误:
或者
解决方案:
和,换成
和
4.数据库数据源相关配置
会员数据源
订单数据源
5.创建分包Mapper
会员mapper
订单mapper
6.启动项目

5.事务管理
5.1 Springboot整合事务管理
springboot默认集成事务,只主要在方法上加上即可
5.2 SpringBoot分布式事务管理
使用 分布式事物管理
1.多数据源分布式事务案例
2.Maven相关依赖
3.新增配置文件信息
4.读取配置文件信息
5.创建多数据源
如果多数据源使用事务报错的话
明确指定使用那个事务管理器即可
6.启动加载配置
6.整合热部署
6.1 Spring Boot集成lombok让代码更简洁
1.需要安装Idea整合 整合Lombok插件

2.搜索Lombok插件即可

3.点击install然后,安装成功之后,点击 重启idea 即可。
整合lombok注意事项
- 需要在idea中安装lombok插件;-----没有做
- 引入到lombok依赖;
加上了注解,根本就没有生成get和set方法。
4.添加lombok依赖
5.打印日志
//App 是类的名称,在那个类中用就写那个类
直接在类上加上 就不用写上面这行代码
6.其他特性
6.2 Spring Boot整合热部署框架
1.什么是热部署
修改java类或页面或者静态文件,不需要手动重启
原理:类加载器
适合于本地开发环境
2. Maven依赖
3. Idea工具设置
- `“File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically”
- 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running”
新版本的IDEA在这里设置

4.效果演示
按住保存键,自动帮我实现重启项目
7.整合配置文件
1. 在整合配置文件,分成两大类:
或者是
相对于来说文件格式写法更加精简,减少配置文件的冗余性。
2. 加载顺序:
先加载 后加载
用于应用程序上下文的引导阶段。
由父加载。
3.区别:
和 都可以用来配置参数。
用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦 被加载,则内容不会被覆盖。
可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
分布式配置中心:
在线转换格式网址:
7.1使用@value注解和@ConfigurationProperties注解
注解
注解
Maven依赖
配置文件
7.2配置文件占位符
在的配置文件中,我们可以使用提供的的一些随机数
、、
表示获取10以内的随机数、
来制定找不到属性时的默认值
7.3多环境配置和核心配置
里面指定读取文件的名称
:开发环境
:测试环境
:生产环境
核心配置
8.日志管理
8.1使用logback记录日志
已经默认帮你整合好了
日志输出文件在当前项目路径文件夹下
1.Maven依赖
2.在包下新建一个包,在包下建 在里面进行配置(拷贝到里面即可)
3.在 目录下的 文件内新增 配置
4.测试案例

5.日志级别
最低等级的,用于打开所有日志记录。
,很低的日志级别,一般不会使用。
指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。
消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。
表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示
指出虽然发生错误事件,但仍然不影响系统的继续运行。打印错误和异常信息,如果不想输出太多的日志,可以使用这个级别。
指出每个严重的错误事件将会导致应用程序的退出。这个级别比较高了。重大错误,这种级别你可以直接停止程序了。
最高等级的,用于关闭所有日志记录。
6.日志目录

8.2使用log4j记录日志
1.Maven依赖
这段代码是使用构建项目时,添加依赖的一种方式,并且通过排除了其中的依赖。
当你使用类似的配置时,依赖会被添加到项目中,并且排除了 。这样,你可以根据自己的需求选择适合的日志框架进行使用
这个排除依赖的操作可以用来替换其他的日志框架,或者使用自定义的日志框架进行日志的输出
2.新建配置文件
在 目录下新建文件
记得根据自己的项目修改里面的日志输出路径
3.


8.3使用AOP统一处理Web请求日志
一般项目都是基于AOP实现 或者elk实现的
它可以在我们的方法的前后实现拦截 减少打印日志代码的冗余性的问题
1.Maven依赖
2.AOP切面相关配置(直接拷贝即可)
9.其他内容
9.1使用@Scheduled创建定时任务
在的主类(类即启动类)中加入注解,启用定时任务的配置

加粗部分一般使用 写法:
可以在此网站中查找双引号中的使用规范

9.2使用@Async实现异步调用
在 Spring Boot 应用的主类(App类即启动类)上添加 @EnableAsync 注解,用于启用 Spring 的异步执行功能。
需要执行异步方法上加入
具体来说, 注解用于告诉 框架将被注解的方法放入一个任务执行器(Task Executor)中执行,而不是使用调用线程进行同步执行。任务执行器负责管理执行异步任务的线程池或者其他执行策略。
异步应用场景
实际就是多线程封装的
异步线程执行方法有可能会非常消耗的资源,所以大的项目建议使用
异步实现。
整合线程池
异步注解配置类
(配置线程池,可直接拷贝)
代码案例
是一个框架中的注解,用于将方法标记为异步执行的方法。
注意失效问题
注意:如果异步注解写当前自己类,有可能aop会失效,无法拦截注解,最终导致异步注解失效,需要经过代理类调用接口;
所以需要将异步的代码单独抽取成一个类调用接口。
9.3全局捕获异常
表示拦截异常
是 的一个辅助类,最常用的就是作为全局异常处理的切面类
可以指定扫描范围
约定了几种可行的返回值,如果是直接返回 类的话,需要使用 进行 转换
- 返回 String,表示跳到某个
- 返回
- 返回
全局捕获异常配置类
没使用之前

给用户显示这个页面很不友好
使用全局捕获异常配置类之后的页面

9.4发布打包
使用 打包
进入到项目所在目录 输入 进行打包等待打包完成

显示这个即打包完成

在项目的目录中的 包下生成一个包

使用包的全路径地址

如果报错没有主清单,在文件中新增
重新打包再运行

启动


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4799.html