Spring Boot 学习笔记

介绍

Spring Boot 是什么

待补充。。。

Spring Boot 能做什么

待补充。。。

选择 Spring Boot 的初衷

// 2018.4.15

因为有个项目需要用一个页面来显示从 HBase 中读取的数据

这只是一个想法

未验证其可行性

// 2018.4.23

已验证其可行性

现已实现从 HBase 中读取的数据然后显示在网页中

实现将其热部署

实例解析

需求分析

有个项目需要动态展示 HBase 中的数据

HBase 中的数据是会变化的,所以项目需要热部署,并对页面动态刷新。

环境说明

开发工具: Intellij IDEA

Java版本: 1.8.0_161

项目目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── foodrecommender
│ │ │ ├── controller
│ │ │ │ └── RecController.java
│ │ │ ├── dao
│ │ │ │ └── FoodRecDAO.java
│ │ │ ├── domain
│ │ │ │ └── FoodRec.java
│ │ │ ├── utils
│ │ │ │ └── HBaseUtils.java
│ │ │ │
│ │ │ └── FoodrecomenderApplication.java
│ │ │
│ │ └── resources
│ │ ├── static
│ │ │ ├── css
│ │ │ └── images
│ │ ├── templates
│ │ │ └── index.html
│ │ └── application.yml
│ │
│ └── test

├── pom.xml

学习历程


Step 1: 运行第一个 Spring Boot 项目

根据慕课网上的教程 2小时学会Spring Boot 解锁怎么在 IDEA 新建一个 Spring Boot 项目

并写一个简易的 Hello Spring Boot 显示在网页中


Step 2: Spring Boot 集成 Thymeleaf

一般都是先在 pom.xml 文件中添加 Thymeleaf 的依赖如下

1
2
3
4
5
<!--Thymeleaf模板-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

templates 目录中新建 index.html

(PS: 为了显示的效果,我直接放进一个做好布局静态的 html文件)

采用 ModelAndViewRecController.java 中指定 index.html

进行相关测试,能在页面中看到效果。


Step 3: 测试是否能从 HBase 中读取数据

写一个 HBase 操作工具类 HBaseUtils.java

验证是否能从 HBase 中读取数据



Step 3: 规范代码结构

实体类 FoodRec.java

数据访问层 FoodRecDAO.java


Step 4: 将从 HBase 中读取的数据显示在前端的 index.html

参考 Spring Boot和Thymeleaf集成 中 ModelAndView 传值的例子如下

1
2
3
4
5
6
7
@RequestMapping(method = RequestMethod.GET)
public ModelAndView home(ModelAndView model) {
model.getModel().put("firstName", "set param firstname in ModelAndView");
model.getModel().put("lastName", "set param lastname in ModelAndView");
model.setViewName("RequestParam");
return model;
}

参考链接如下:

  1. https://www.cnblogs.com/han-1034683568/p/7520012.html
  2. https://github.com/Terry-Shi/blog/wiki/Spring-Boot-thymeleaf#spring-boot%E5%92%8Cthymeleaf%E9%9B%86%E6%88%90
  3. https://segmentfault.com/a/1190000014352023

Step 5: 实现热部署

由于 HBase 中的数据是变化的,所以需要动态更新页面

而当前的网站是静态的,只是在启动的时候执行了一次

参考

springboot集成thymeleaf(不重启刷新html)

spring-boot 速成(2) devtools之热部署及LiveReload

他教程中最后那步针对的是 MAC 系统

如果是 Windows 系统可以参考第二个链接中的说明

步骤为 Keymap -> Other -> Maintenance

我找到之后发现他的快捷键为 Ctrl + Alt + Shift + /


Step 5: 验证热部署

HBase 中对数据做相关的覆盖操作,发现网站页面上的数据并没有改变

在手动刷新网页后能得到新的结果

但这不能满足我们的需求

根据实际需求在网上找到这篇文章 网页页面 自动刷新的3种代码

采用其中最简单的第一种方法,实现了页面的自动刷新


项目展示

项目地址

待上传

总结

从 0 开始到得到我想要的效果。

一个小目标一个小目标的实现,期间经历了多次可行性验证

一开始有很多问题,都借助搜索引擎解决了

参照着 提问的智慧 中的一原则,也向别人请教了一些问题

大多数都是自己解决的

记录下整个过程

这就是我走过的路

------ 本文结束------
如果对您有帮助的话请我喝瓶水吧!