import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as p,o as e,c as l,a as t,d as n,e as r,f as s}from"./app-730966a2.js";const c={},i=t("h2",{id:"任务",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#任务","aria-hidden":"true"},"#"),n(" 任务")],-1),u=t("ul",null,[t("li",null,"[x] 环境配置"),t("li",null,"[x] 搭建项目结构"),t("li",null,"[x] 跑通广播模式 RPC 过程调用")],-1),d=t("h2",{id:"学习过程",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#学习过程","aria-hidden":"true"},"#"),n(" 学习过程")],-1),k=s("
项目整体了解
通过对第一节文档的阅读,了解整个项目的生命周期、所需要的技术以及代码提交规范
搭建项目结构,理解每个模块应该干什么
模块 | 作用 |
---|---|
Lottery | 总项目,用来管理整个项目的依赖 |
lottery-application | 应用层,为用户接口层提供各种应用数据展现支持服务 |
lottery-common | 定义通用数据,比如统一响应数据、常量、异常、枚举等 |
lottery-domain | 领域层,核心业务逻辑 |
lottery-infrastructure | 基础层,为其他各层提供通用技术能力,包括数据库、Redis、ES 等 |
lottery-interfaces | 用户接口层,存放与前端交互、展现数据相关的代码 |
lottery-rpc | RPC 接口文件 |
注:因为并不了解 DDD 架构,所以每个模块目前只有模糊的概念,具体的东西在后续代码编写中进行体会
跑通 RPC
代码分层不清晰,不知道每个模块应该干什么事
这个问题该怎么解决呢?我觉得最好的解决办法就是不解决,哈哈哈,因为当初学 MVC 的时候最开始也不清楚为什么要这样分层,为什么就要分 Controller、Service 和 DAO,但是后来经过大量代码的编写,也逐渐熟悉了这样的分层架构,所以现在并不想解决这个问题,具体还是靠后面的代码进行了解和熟悉吧
JSON.toJSonString() 方法返回了空 {}
问题出现原因,忘了加 @Data
注解,导致没有 getter/setter
就导致了这个问题,加上注解即可
解决!
数据库乱码问题
测试模块 RPC 远程调用返回的结果为:
测试结果:{"activity":{"activityDesc":"?????????","activityId":100002,"activityName":"????","beginDateTime":1705215282000,"endDateTime":1705215282000,"stockCount":100,"takeCount":10},"result":{"code":"0000","info":"成功"}}
明显的乱码问题,查看数据库,发现插入的时候就以及乱码了,看了一下配置文件中的数据库连接 url,发现使用了 useUnicode=true,并没有指定字符集,所以添加一下 utf-8 字符集即可,完整 url: jdbc:mysql://127.0.0.1:3306/lottery?useUnicode=true&characterEncoding=UTF-8
再进行一轮测试,测试结果:
测试结果:{"activity":{"activityDesc":"仅用于插入数据测试","activityId":100003,"activityName":"测试活动","beginDateTime":1705218054000,"endDateTime":1705218054000,"stockCount":100,"takeCount":10},"result":{"code":"0000","info":"成功"}}
解决!
今天干了说明呢?
具体怎么跑通 RPC 的呢?
学到了什么呢?
第一天,脑子还有点迷糊,因为基础不太牢固,所以有些小 bug 花费了挺长时间的,但是至少是跑起来了吧?也还行,路虽远,行则将至嘛,虽然年后要找实习,但是还是慌不得,慢慢来,一口吃不成个大胖子,准备晚上再补一补 Dubbo 基础
`,10);function b(_,v){const a=p("ExternalLinkIcon");return e(),l("div",null,[i,u,d,t("ol",null,[k,t("li",null,[t("p",null,[n("阅读 "),t("a",q,[n("210801_xfg_initProject"),r(a)]),n(" 分支上的 POM 文件")]),y]),h]),m])}const x=o(c,[["render",b],["__file","day01.html.vue"]]);export{x as default};