SpringBoot
文章平均质量分 78
Android_la
Java入门到进阶级别
展开
-
SpringBoot实现导出Excel功能
本篇着重阐述后端怎么实现,前端实现的部分只会粗略阐述。该实现方案是经过生产环境考验的,不是那些拿来练手的小demo。本文阐述的方案可以借鉴用来做毕设或者加到自己玩的项目中去。原创 2023-04-22 23:08:06 · 6681 阅读 · 8 评论 -
Day58——SpringBoot2.x整合SpringData JPA
文章目录一. 回顾二. 整合SpringData JPA2.1 JPA简介2.2 环境搭建一. 回顾前面学习了Day57——SpringBoot整合MyBatis,今天来学习整合SpringData JPA二. 整合SpringData JPA2.1 JPA简介2.2 环境搭建创建application.yml配置数据源,如下:spring: datasource: url: jdbc:mysql://192.168.32.102:3306/jpa usernam原创 2020-08-04 15:18:54 · 147 阅读 · 0 评论 -
Day57——SpringBoot2.x整合MyBatis
文章目录一. 问题背景二. 整合MyBatis2.1 搭建环境一. 问题背景前面学习了Day56——SpringBoot2.x整合Druid&配置数据源监控,今天来学习整合MyBatis二. 整合MyBatis2.1 搭建环境首先搭建好druid数据源,这个步骤与Day56——SpringBoot2.x整合Druid&配置数据源监控一样,步骤如下:引入依赖: <!--引入druid数据源--> <dependency> <groupI原创 2020-08-04 11:31:27 · 230 阅读 · 0 评论 -
Day56——SpringBoot2.x整合Druid&配置数据源监控
文章目录一. 回顾一. 回顾前面学习了原创 2020-08-03 11:36:49 · 272 阅读 · 0 评论 -
Day55——SpringBoot2.x版本的jdbc&自动配置原理
文章目录一. 问题背景二. jdbc三. 自动配置原理3.1 DataSourceConfiguration3.2 DataSourceAutoConfiguration一. 问题背景前面学习了Day54——数据访问简介以及准备工程环境,今天来学习jdbc和自动配置原理二. jdbc工程环境在Day54——数据访问简介以及准备工程环境已经搭好了,要使用jdbc,只需在配置文件做配置即可。application.yaml配置如下:spring: datasource: username原创 2020-08-02 20:11:25 · 358 阅读 · 0 评论 -
Day54——数据访问简介以及准备工程环境
文章目录一. 回顾二. 数据访问简介三. 搭建工程环境一. 回顾前面学习了关于Docker的使用,今天开启新篇章数据访问二. 数据访问简介三. 搭建工程环境原创 2020-08-02 13:36:36 · 132 阅读 · 0 评论 -
Day53——Docker安装MySQL
文章目录一. 回顾二. Docker安装MySQL一. 回顾前面学习了,今天学习Docker安装MySQL二. Docker安装MySQL使用docker pull mysql下载mysql镜像使用docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag创建mysql容器。注意这里的-e MYSQL_ROOT_PASSWORD=密码这是必须有的使用docker run -p 3306:3306 --name mysq原创 2020-08-02 00:35:44 · 118 阅读 · 0 评论 -
无法删除Docker镜像报错unable to delete 9a9ad4f631f8 (cannot be forced) - image has dependent child images
一. 问题背景使用docker rmi 镜像ID无法删除镜像,报错unable to delete 9a9ad4f631f8 (cannot be forced) - image has dependent child images二. 解决方案使用docker 镜像名:tag删除即可,如下:[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED原创 2020-08-01 23:15:14 · 2183 阅读 · 0 评论 -
Day52——Docker常用操作
文章目录一. 回顾二. Docker常用操作2.1 镜像操作2.2 容器操作一. 回顾前面学习了Day51——Linux环境准备以及安装Docker,今天来学习Docker常用操作命令二. Docker常用操作2.1 镜像操作操作命令说明检索docker search 关键字 eg:docker search mysql我们经常去docker hub上检索镜像的详细信息,如镜像的TAG拉取docker pull 镜像名:tag:tag是可选的,多为软件的版本,默原创 2020-08-01 23:06:51 · 119 阅读 · 0 评论 -
Docker启动Tomcat访问首页报错404
文章目录一. 问题背景二. 报错的原因三. 解决方案一. 问题背景操作系统: Linux情况:使用Linux上的Docker创建Tomcat容器,已经指定了映射端口,但是启动Tomcat容器后,在本地电脑访问tomcat首页,出现404报错,如下:参考自:SpringBoot 入坑(六)Docker 整合 Tomcat 启动&&访问404异常解决Docker方式启动tomcat,访问首页出现404错误二. 报错的原因因为配置了阿里云的Docker加速下载,所以下载下来后原创 2020-08-01 22:51:45 · 720 阅读 · 0 评论 -
Day51——Linux环境准备以及安装Docker
文章目录一. 回顾二. Linux环境准备2.1 资料准备2.2 开始安装一. 回顾前面学习了Day50——Docker简介以及核心概念,今天准备linux环境二. Linux环境准备2.1 资料准备Docker可以安装在window、mac、linux上,由于后期使用的linux比较多,所以这里将Docker安装在Docker上面。因此我们首先要准备好linux环境。这里使用Oracle提供的开源免费的VirtualBox,它非常轻量。不像VMWare,启动都得好久,太重了。准备好Virtu原创 2020-08-01 13:07:43 · 167 阅读 · 2 评论 -
Day50——Docker简介以及核心概念
文章目录一. 回顾二. Docker简介三. Docker核心概念四. 使用Docker的步骤一. 回顾前面学习完了Day49——外部Servlet容器SpringBoot启动原理,SpringBoot的web模块已经学习完了。今天开启新篇章——Docker。今天学习Docker简介以及核心概念。二. Docker简介首先需要了解“镜像”一词,如下:Docker介绍如下:三. Docker核心概念Docker主机(Host): 安装了Docker程序的机器(Docker直接安装在操作系统之原创 2020-08-01 10:57:49 · 126 阅读 · 0 评论 -
SpringBoot2.3定制错误页面
文章目录一. 问题背景二. SpringBoot的错误页面机制一. 问题背景后台: SpringBoot 2.3.1(官方2.3版本修改了很多,抛弃了很多以前能用的方法)前端: Layui(前端用哪个框架问题不大)技术: SpringBoot+Thymeleaf+Layui情况:我想将Layui提供好的错误页面作为SpringBoot默认的错误页面,而且Layui提供的错误页面位置并不是放在/静态资源文件夹/error,而是在如下:二. SpringBoot的错误页面机制错误页面机制的原理详原创 2020-07-31 15:59:36 · 955 阅读 · 1 评论 -
Day49——外部Servlet容器SpringBoot启动原理
文章目录一. 回顾二. 外部Servlet容器SpringBoot启动原理2.1 切入点分析2.2 启动流程一. 回顾前面学习了Day48——使用外部Servlet容器&JSP支持,今天学习外部Servlet容器SpringBoot启动原理二. 外部Servlet容器SpringBoot启动原理2.1 切入点分析应用程序为jar包时,启动方式是: 执行SpringBoot主类的main方法,启动IOC容器,创建嵌入式的Servlet容器。应用程序为war包时,启动方式是: 启动服务器(比原创 2020-07-27 11:52:04 · 161 阅读 · 0 评论 -
Day48——使用外部Servlet容器&JSP支持
文章目录一. 回顾二. 使用外部Servlet容器&JSP支持2.1 使用外部Servlet容器步骤2.2 使用外部Servlet容器的总结一. 回顾前面学习了Day47——嵌入式Servlet容器启动原理,今天学习下使用外部Servlet容器以及JSP支持二. 使用外部Servlet容器&JSP支持2.1 使用外部Servlet容器步骤首先new一个project,如下:测试:hello.jsp<body> <h1>hello原创 2020-07-27 10:31:21 · 183 阅读 · 0 评论 -
Day47——嵌入式Servlet容器启动原理
文章目录一. 回顾二. 嵌入式Servlet容器启动原理2.1 切入点分析2.2 debug分析一. 回顾前面学习了Day46——SpringBoot2.x版本的嵌入式Servlet容器自动配置原理,今天学习它的启动原理二. 嵌入式Servlet容器启动原理2.1 切入点分析Day46——SpringBoot2.x版本的嵌入式Servlet容器自动配置原理中,我们知道Servlet容器的启动过程如下:Tomcat最终会在TomcatWebServer中的initialize()方法中start原创 2020-07-26 22:25:32 · 173 阅读 · 0 评论 -
Day46——SpringBoot2.x版本的嵌入式Servlet容器自动配置原理
文章目录一. 回顾二. 嵌入式Servlet容器自动配置原理2.1 切入点分析2.2 初步了解ServletWebServerFactoryAutoConfiguration2.2.1 EmbeddedTomcat、EmbeddedJetty、EmbeddedUndertow2.2.2 BeanPostProcessorsRegistrar一. 回顾前面学习了Day45——切换其他嵌入式容器(比如Jetty、Undertow),今天学习嵌入式Servlet容器自动配置原理。参考自:SpringBoot原创 2020-07-26 18:27:35 · 386 阅读 · 0 评论 -
Day45——切换其他嵌入式容器(比如Jetty、Undertow)
文章目录一. 回顾二. 切换其他嵌入式容器2.1 有哪些嵌入式容器2.2 切换的初步原理2.3 切换的步骤一. 回顾前面学习了Day44——注册Servlet原生的三大组件servlet、filter、listener,今天学习切换其他嵌入式容器二. 切换其他嵌入式容器2.1 有哪些嵌入式容器Jetty(优点在于长连接,常用于聊天软件)、Undertow(优点在于高性能非阻塞的,并发性能非常好,但不支持JSP)2.2 切换的初步原理在前面学习的Day43——嵌入式的Servlet容器配置(不再原创 2020-07-26 00:56:55 · 187 阅读 · 0 评论 -
Day44——注册Servlet原生的三大组件servlet、filter、listener
文章目录一. 回顾二. 注册三大组件2.1 以前的注册方式2.2 注册Servlet2.2.1 原理2.2.2 注册步骤2.3 注册Filter2.3.1 原理2.2.2 注册步骤2.4 注册Listener2.4.1 原理2.2.2 注册步骤一. 回顾前面学习了Day43——嵌入式的Servlet容器配置(不再使用EmbeddedServletContainerCustomizer而是使用WebServerFactoryCustomizer),今天学习注册servlet的三大组件二. 注册三大组件原创 2020-07-25 21:41:33 · 238 阅读 · 1 评论 -
Day43——嵌入式的Servlet容器配置(不再使用EmbeddedServletContainerCustomizer而是使用WebServerFactoryCustomizer)
文章目录一. 回顾二. 嵌入式的Servlet容器配置2.1 什么是嵌入式的Servlet容器2.2 如何定制和修改Servlet容器的相关配置2.2.1 方法一2.2.2 方法二一. 回顾前面学习了Day42——定制错误数据,今天学习嵌入式的Servlet容器配置二. 嵌入式的Servlet容器配置2.1 什么是嵌入式的Servlet容器Servlet容器:比如Tomcat嵌入式:无需在本地电脑安装Servlet容器,SpringBoot即可成功启动访问web页面2.2 如何定制和修改Ser原创 2020-07-22 23:28:44 · 558 阅读 · 1 评论 -
Day42——定制错误数据
文章目录一. 回顾二. 定制错误数据2.1 自定义错误异常UserNotExistException2.2 初步定制错误数据2.3 改进定制错误数据——自适应2.4 实现自适应并前往自定制错误页面2.4.1 分析2.4.2 实现2.5 将自己定制的数据携带出去2.5.1 分析2.5.2 将数据携带出去的过程2.5.3 将数据携带出去的方案2.5.4 实现2.6 解决exception显示不出来2.6.1 情况2.6.2 分析2.6.3 解决一. 回顾前面学习了Day41——错误处理原理&定制错误原创 2020-07-21 17:50:33 · 383 阅读 · 0 评论 -
Day41——错误处理原理&定制错误页面
文章目录一. 回顾二. 错误处理2.1 什么是错误处理?2.2 错误处理原理2.2.1 错误处理的核心组件2.2.2 ErrorPageCustomizer2.2.3 BasicErrorController2.2.4 DefaultErrorViewResolver2.2.5 DefaultErrorAttributes三. 定制错误页面一. 回顾前面完成了Day40——员工删除——删除完成,今天学习错误处理原理以及定制错误页面二. 错误处理2.1 什么是错误处理?有时候点击添加按钮,跳转页面失原创 2020-07-20 21:20:42 · 380 阅读 · 0 评论 -
Day40——员工删除——删除完成
文章目录一. 回顾二. 员工删除一. 回顾前面学习了Day39——员工修改——重用页面以及修改完成,今天学习员工删除。二. 员工删除最关键的是将form单独提取出来,这样就不用每次遍历产生<tr>都生成一个form。然后使用js控制提交按钮提交。代码如下:<!-- thymeleaf属性设置th:attr="属性名=值"--> <button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-原创 2020-07-19 23:22:29 · 179 阅读 · 0 评论 -
Day39——员工修改——重用页面以及修改完成
文章目录一. 回顾二. 来到修改页面三. 重用页面四. 完成修改一. 回顾前面学习了Day38——完成添加功能,今天完成员工修改二. 来到修改页面使用 {id} 占位符获取id值,使用 @PathVariable(“id”) 将请求参数绑定到入参中//来到修改页面,查出当前员工,在页面回显 @GetMapping("/emp/{id}") public String toEditPage(@PathVariable("id") Integer id, Model model){原创 2020-07-19 21:59:04 · 877 阅读 · 0 评论 -
Day38——完成添加功能
文章目录一. 回顾二. 效果三. 实现添加的关键代码四. 关于日期格式的原理一. 回顾前面学习了Day37——员工添加页面,今天完成添加功能二. 效果三. 实现添加的关键代码写一个controller,如下: //添加员工 @PostMapping(value = "/emp") //SpringMvc会自动将请求参数与入参对象的属性一一绑定,要求请求参数的名字和javabean入参对象的属性名是一样的 public String addEmp(Employee原创 2020-07-10 17:43:43 · 168 阅读 · 0 评论 -
Day37——员工添加页面
文章目录一. 回顾二. 效果三. 后台返回部门数据给前台展示一. 回顾前面学习了Day36——链接高亮以及完成列表展示数据,今天完成员工添加页面二. 效果三. 后台返回部门数据给前台展示后台controller方法,如下: //来到员工添加页面 @GetMapping(value="/emp") public String toAddPage(Model model){ //查出所有的部门信息,在页面显示 Collection<Depart原创 2020-07-10 11:54:33 · 511 阅读 · 0 评论 -
Day36——链接高亮以及完成列表展示数据
文章目录一. 回顾二. 效果展示三. 链接高亮显示四. 列表展示数据五. 代码一. 回顾前面学习Day35——员工列表-公共页抽取,今天学习链接高亮以及列表展示数据二. 效果展示三. 链接高亮显示侧边栏的链接高亮是通过<a class="active">设置的,我们可以通过判断变量==xxx,从而实现链接动态高亮显示。语法:在声明公共片段的元素中设置th:class="${activeUri}=='main.html'?'nav-link active':'na-link'"原创 2020-07-10 10:54:12 · 201 阅读 · 0 评论 -
Day35——员工列表-公共页抽取
文章目录一. 回顾二. 抽取公共代码2.1 抽取代码语法2.2 引入公共代码的语法2.3 例子三. 员工列表公共页抽取3.1 需求3.2 效果3.3 步骤一. 回顾前面学习了Day34——Restful实验要求,今天学习公共页抽取二. 抽取公共代码2.1 抽取代码语法th:fragment="片段名",片段名随意取。在需要抽取公共代码的标签里,声明id属性,比如<nav id="topbar">2.2 引入公共代码的语法语法:th:insert="~{ 模板名::片段名}"或原创 2020-07-10 09:33:48 · 144 阅读 · 0 评论 -
Day34——Restful实验要求
一. 回顾昨天讲了Day33——登录&拦截器,今天学习restful的crud二. 实验要求rest风格的crud,其请求格式为:/资源名称/资源标识,http请求方式区分crud操作实验的请求架构:请求URI请求方式查询所有员工empsGET查询某个员工(来到修改页面)emp/{id}GET来到添加页面empGET添加员工empPOST来到修改页面(查出员工进行信息回显)emp/{id}GET修改员工empPUT原创 2020-07-10 08:44:32 · 139 阅读 · 0 评论 -
Day33——登录&拦截器
文章目录一. 回顾二. 需求三. 代码一. 回顾昨天讲述Day32——国际化,今天学习登录&拦截器二. 需求访问登录页面,输入用户名以及密码点击登录,后台验证密码是否正确,若正确则由登录页面进入到主页面。三. 代码...原创 2020-07-09 18:36:48 · 186 阅读 · 0 评论 -
Day32——国际化
文章目录一. 回顾二. 以前SpringMVC国际化的步骤三. SpringBoot国际化的步骤四. SpringBoot配置好的国际化资源组件简介五. 代码一. 回顾前面Day31——引入bootstrap资源,今天学习国际化。二. 以前SpringMVC国际化的步骤编写国际化配置文件使用ResourceBundleMessageSource管理国际化资源文件在页面使用fmt:message把国际化内容取出来三. SpringBoot国际化的步骤编写国际化配置文件SpringBoo原创 2020-07-08 23:07:08 · 201 阅读 · 0 评论 -
Day31——引入bootstrap资源
一. 引入资源二. 指定首页映射路径2.1 问题背景静态资源文件public有一个index.html页面,templates文件夹也有一个index.html页面,我想要首页访问的是后者的index.html而不是前者的。2.2 方法方法一:在controller方法里面指定请求路径(原理是,指定路径后,模板引擎会自动到templates文件夹下去找),如下:@RequestMap...原创 2020-05-03 21:18:43 · 278 阅读 · 0 评论 -
Day30——全面接管SpringMVC以及如何修改SpringBoot的默认配置
一. 回顾前面讲了Day29——SpringMVC自动配置原理,从自动配置原理总结出如何修改SpringBoot的默认配置?二. 扩展SpringMVC仅靠SpringBoot的自动配置有时可能不够用。我们需要自己定义配置。比如以前在springmvc.xml中配置视图映射。<mvc:view-controller path="/hello" view-name="success"/...原创 2020-05-02 21:57:07 · 190 阅读 · 0 评论 -
Day29——SpringMVC自动配置原理
一. 知识储备了解SpringBoot的SpringMVC自动配置原理可以从官方文档和源码下手。如下:我们打开SpringBoot官网,如下:下面就可以见到SpringBoot默认配置的SpringMVC1.1 ContentNegotiatingViewResolver & BeanNameViewResolver这两个的作用是自动配置了ViewResolver(视...原创 2020-05-02 20:20:48 · 382 阅读 · 0 评论 -
自己定制一个简单的ViewResolver视图解析器
一. 步骤为了方便演示,直接在主配置类(标注了@SpringBootApplication的类)写代码:@Bean public ViewResolver myViewResolver(){ return new MyViewResolver(); } private class MyViewResolver implements ViewResolv...原创 2020-04-30 20:43:56 · 284 阅读 · 0 评论 -
Day28——thymeleaf语法
一. 回顾前面Day27——thymeleaf的使用,讲述了thymeleaf的使用。今天讲述thymeleaf的语法。二. 语法原创 2020-04-25 20:47:07 · 132 阅读 · 0 评论 -
Day27——thymeleaf的使用
一. 回顾前面Day26——引入thymeleaf讲述了引入thymeleaf的方法。下面开始使用thymeleaf。二. 使用thymeleaf2.1 使用thymeleaf的html页面放在哪里在引入thymeleaf的依赖后,可以在External Libraries看到有这样一个包:在ThymeleafProperties类中可以看到如下:public static fin...原创 2020-04-25 20:34:50 · 262 阅读 · 0 评论 -
SpringBoot使用thymeleaf找不到xxx.html页面
一. 问题背景浏览器输入localhost:8080/success,Controller中写了方法处理/success的请求,如下:@RequestMapping("/success") public String success(){ return "success"; }但是浏览器却找不到success.html这个页面。二. 解决方法看看是否...原创 2020-04-25 16:22:15 · 1058 阅读 · 1 评论 -
Day26——引入thymeleaf
一. 简介二. 引入thymeleafSpringBoot推荐使用Thymeleaf,所以我们去SpringBoot官网查找thymeleaf的依赖坐标。如下:由此可知thymeleaf的依赖坐标是:<dependency> <groupId>org.springframework.boot</groupId> ...原创 2020-04-25 14:47:04 · 206 阅读 · 0 评论 -
Day25——webjars和静态资源映射规则
一. 问题背景写前端页面时,需要用到js、css、images、icon等等。那么springboot怎么加载这些静态资源呢?我们将静态资源放在哪个文件夹下呢? 下面先做总结,再分析原理二. 总结2.1 Controller中匹配不到就去静态资源文件夹匹配“/**"访问当前项目下的任何资源。以下是静态资源的文件夹 (即静态资源放在这些文件夹里面能,springboot就能自动识别出来并当有...原创 2020-04-24 22:46:10 · 291 阅读 · 0 评论