分布式调用与高并发处理 Dubbo分布式调用(四)

简介: 分布式调用与高并发处理 Dubbo分布式调用(四)

5.12 user_consumer项目集成Thymeleaf

5.12.1 user_consumer工程pom文件中添加thymeleaf依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

5.12.2 配置视图解析器

默认

spring-boot很多配置都有默认配置,比如默认页面映射路径为

classpath:/templates/*.html

同样静态文件路径为

classpath:/static/

自定义

在application.properties(或者application.yml)中可以配置thymeleaf模板解析器属性.就像使用springMVC的JSP解析器配置一样。

spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html 
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false

5.12.3 编写index.html首页

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<a th:href="@{/addUser}">添加用户</a><br>
<a th:href="@{/user/getUser}">查询用户</a>
</body>
</html>

5.12.4 创建页面跳转 Controller

package com.zj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class PageController {
   /**
   * 完成页面跳转
   */
   @GetMapping("/{page}")
   public String showPage(@PathVariable String page){
     return page;
   }
   /*忽略图标*/
    @GetMapping("/favicon.ico")
    @ResponseBody
    public String favicon(){
        return " ";
    }
}

启动user_cnsumer项目。

5.13 用户添加业务消费者实现

5.13.1 user_consumer项目配置文件中添加Dubbo相关的配置信息

################ Dubbo 配置 ####################
#服务的名称
dubbo.application.name=Consumer
#  注册中心地址(单机)
dubbo.registry.address=zookeeper://192.168.66.100:2181
#  注册中心地址(集群)
#dubbo.registry.address=zookeeper://192.168.233.130:2181?backup=192.168.233.130:2182,192.168.233.130:2183
dubbo.registry.timeout=50000
#协议
dubbo.protocol.name=dubbo
#dubbo服务端口
dubbo.protocol.port=20881
#包扫描
dubbo.scan.base-packages=com.zj.service

5.13.2 编写adduser.html页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>添加用户</title>
</head>
<body>
<form th:action="@{/user/addUser}" method="post">
    用户姓名:<input type="text" name="name"/><br/>
    用户年龄:<input type="text" name="age"/><br/>
    <input type="submit" value="OK"/>
</form>
</body>
</html>

5.13.3 user-consumer项目添加 user_api依赖

<dependency>
            <groupId>com.zj</groupId>
            <artifactId>user_api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

5.13.4 user_consumer项目编写用户添加接口和实现类

package com.zj.service;
import com.zj.pojo.User;
public interface UserService {
    void addUser(User user);
}
package com.zj.service.Impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.zj.api.AddUserService;
import com.zj.pojo.User;
import com.zj.service.UserService;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
    //远程调用生产者接口
    @Reference
    private AddUserService addUserService;
    @Override
    public void addUser(User user) {
      addUserService.addUser(user);
    }
}

5.13.5创建控制器

package com.zj.controller;
import com.zj.pojo.User;
import com.zj.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
/**
 * 处理用户操作控制器
 */
@Controller
@RequestMapping("/user")
public class UserController {
  @Resource
  private UserService userService;
  /**
   * 处理添加用户请求
   */
  @RequestMapping("/addUser")
  public String addUser(User user){
    this.userService.addUser(user);
    return "redirect:/ok";
   }
}

运行项目即可。

查看数据库是否存在该数据。

查看、修改、删除和添加同理不再赘述。

相关文章
|
3月前
|
监控 负载均衡 Dubbo
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
166 0
|
4月前
|
运维 负载均衡 Dubbo
分布式技术之dubbo
分布式技术之dubbo
38 0
分布式技术之dubbo
|
4月前
|
Dubbo Java 应用服务中间件
Spring Boot Dubbo 构建分布式服务
Spring Boot Dubbo 构建分布式服务
54 0
|
18天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
1月前
|
缓存 NoSQL 数据库
关于高并发下缓存失效的问题(本地锁 && 分布式锁 && Redission 详解)
关于高并发下缓存失效的问题(本地锁 && 分布式锁 && Redission 详解)
151 0
|
2月前
|
消息中间件 存储 NoSQL
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
【Redis项目实战】使用Springcloud整合Redis分布式锁+RabbitMQ技术实现高并发预约管理处理系统
|
2月前
|
Dubbo 网络协议 应用服务中间件
分布式微服务框架dubbo原理与机制
分布式微服务框架dubbo原理与机制
|
2月前
|
监控 Dubbo Java
深入理解 Dubbo:构建分布式服务治理体系
深入理解 Dubbo:构建分布式服务治理体系
|
4月前
|
负载均衡 Dubbo Java
分布式技术之dubbo二
分布式技术之dubbo二
20 0
分布式技术之dubbo二
|
4月前
|
Dubbo Java 应用服务中间件
Spring Boot + Dubbo + Zookpeer分布式案例
Spring Boot + Dubbo + Zookpeer分布式案例
37 0