请老师检查!
1.数据库中建立phone与phone_price表格
创建phone表;
创建phone_price表;
2.开发服务发布模块 (producer)
2.1 前提准备
创建父模块:
2.2 正式编写
a.创建实体类Phone,定义编号、手机编号、名称、颜色、是否上架属性,并完成getter/setter等方法。
...; ..; { ; ; ; ; ; () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } }
b.定义手机查询的接口PhoneMapper,在接口中定义查询手机的方法,并使用Mybatis完成查询的sql语句。
...; ....; ....; ....; ...; ..; { () (); }
c.实现手机服务发布接口PhoneListService,定义方法getPhoneList完成手机数据查询。
...; ....; ..; { (); }
....; ....; ....; ....; .....; ..; ..; ( ) { ; () { .(); } }
启动类
..; ...; ....; { ([] ) { .(., ); } }
3.开发费服务消费模块(consumer)
a. 创建价格实体类PhonePrice和手机价格PhoneAndPrice。
PhonePrice存在编号,手 机编号和价格属性。
PhoneAndPrice存在编号,手机编号,名称和价格属性。并完成getter/setter等方法
...; ..; { ; ; ; () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } }
...; ..; { ; ; ; ; () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } ( ) { . ; } () { ; } }
b. 定义价格的查询的PhonePriceMapper接口,在接口中定义查询价格的方法,并使用Mybatis完成查询的sql语句。
...; ....; ....; ....; ...; { () ( ); }
c. 定义手机价格查询PhonePriceService接口,PhonePriceServiceImpl实现该接口。
1)、在PhonePriceServiceImpl中,根据id查询手机价格
2)、在PhonePriceServiceImpl中,调用producer中PhoneListService接口查询所有手机信息,与查询的价格匹配封装到PhoneAndPrice中。
...; ....; ....; ..; { ( ); (); }
....; ....; ....; ....; ....; ....; ....; .....; ...; ..; ..; ..; { ; ( ) ; ( ) { .(); } () { (); .(); ( ; .(); ) { .(); ( ) { (); .(.()); .(.()); .(.()); (.()); .(.()); .(); } } ; } }
d. 在concumer模块中定义PhonePriceController,并注入PhonePriceService,调用该类方法,完成开放对外消费接口
...; ....; ....; .....; .....; ..; ..; { ; () () { .(); } }
启动类:
..; ...; ....; { ([] ) { .(., ); } }
4. 结果
5.我曾遇到过的问题(坑):
问题1:消费者使用其他模块的服务时,只写@Reference
注解,忘记了指定其他模块服务的版本:
应该如红框所写:
问题2:写 sql 时,容易多加一个 } 。且还没有红波浪线提示。
解决: 所以,直接按一下 { 即可,因为会自动补全另外一半的大括号。
问题3:自己写时,消费者,也错误的加了右下方的dubbo扫描配置;
其实不用加,因为消费者的service层,是用于对外暴露服务的,与dubbo无关;而只有被调用的生产者,其service层才是一个dubbo服务,才需要扫描这个路径下的dubbo的注解@Servicer
:
问题4:对象列表创建方式不对,导致即使查询出了正确的数据,对象列表也没装进去。
解决:
应该通过new的方式,创建一个对象列表;(OOP)
对从数据库中查询出来的对象,要有判空的意识;
![35.1093](https://gcore.jsdelivr.net/gh/JerryZhengzzz/images@main/Java/35.1093.png)
正在回答
同学你好,同学的问题老师在这里已经做了回答,请查看: https://class.imooc.com/course/qadetail/341478
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星