1.整合thymeleaf渲染页面
1.为什么不使用vue前端后分离?
- 因为使用thymeleaf能知道更多的业务细节,但是这个技术很老实际工作都不用了,仅为了学习。
2.如何使用?
-
官网链接:https://www.thymeleaf.org/
-
整合springboot
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
-
直接导入提供的资料到resources目录下
- 注意:整合thymeleaf后 默认访问templates包下的.hmtl文件
-
效果
3.完成页面分类接口
-
目前页面上所显示的分类都是写死的,需要动态查询db获取数据
-
第一个接口 查询一级分类
- 返回index会去tempates下找index.html文件
@GetMapping(value = {"/", "index.html"}) private String indexPage(Model model) { //1、查出所有的一级分类 List<Category> categoryEntities = categoryService.list(Wrappers.<Category>lambdaQuery().eq(Category::getParentCid,0)); model.addAttribute("categories", categoryEntities); return "index"; }
-
热部署修改页面后可以不用重启
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
-
查询二三级分类
2.nginx搭建域名访问环境
-
现在我想通过dreammall.com就能访问页面,而不是ip地址需要怎么做呢?
1.sudo vi /etc/hosts 设置 127.0.0.1 dreammall.com
-
输入dreammall.com发送给nginx,由nginx反向代理给网关,由网关再路由给微服务
-
安装nginx
brew install nginx # nginx安装路径 /opt/homebrew/etc/nginx 1.启动服务:sudo nginx 2.停止服务:sudo nginx -s stop
-
配置nginx反向代理给网关
- nginx.conf设置上游服务器(可做负载均衡)
-
mkdir conf.d 下的dreammall.conf配置设置反向代理给upstream
-
网关yml设置路由给微服务
- id: dreammall-host-route uri: lb://dreammall-product predicates: - Host=**.dreammall.com,dreammall.com
-
浏览器输入dreammall.com发现404
-
这是因为nginx代理给网关时,丢失了请求host的信息,导致网关没有拦截到,需要重新设置host信息