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"; } }
运行项目即可。
查看数据库是否存在该数据。
查看、修改、删除和添加同理不再赘述。