- 将controller中的spring的@AutoWired改为dubbo的@Reference
@Controller
public class UmsMemberController {
@Reference
private UserService userService;
@RequestMapping("/index")
public List<UmsMember> index(){
List<UmsMember> user = userService.getList();
return user;
}
@RequestMapping("/getPage")
public IPage<UmsMember> getPage(){
IPage<UmsMember> page =userService.getPage();
return page;
}
}
- 将spring的@Service改为dubbo的@Service
// @Service ---》import com.alibaba.dubbo.config.annotation.Service;
@Service
public class UmsMemberServiceImpl extends ServiceImpl<UmsMemberMapper, UmsMember> implements UserService {
@Autowired
private UmsMemberReceiveAddressMapper umsMemberReceiveAddressMapper;
@Override
public List<UmsMember> getList() {
QueryWrapper<UmsMember> wrapper = new QueryWrapper<UmsMember>();
wrapper.eq("status", StaticConstant.ONE);
List<UmsMember> list = this.list(wrapper);
return list;
}
}
- 修改application.properties配置文件
server.port=8080
logging.level.root=debug
#dubbo 的配置
#dubbo 中服务(容器)名称
spring.dubbo.application=user-web
#dubbo 的通讯协议名称
spring.dubbo.protocol.name=dubbo
#zookeeper注册中心地址
spring.dubbo.registry.address=192.168.245.127:2181
#zookeeper的通讯协议的名称
spring.dubbo.registry.protocol=zookeeper
#dubbo的服务的扫描路径
spring.dubbo.base-package=com.atguigu.gmall
#设置请求超时时间10分钟
spring.dubbo.consumer.timeout=600000
#设置是否检查服务是存在(防止服务之间未启动时抛出异常)
spring.dubbo.consumer.check=false
******dubbo配置注意事项:
- 将spring的@Service改为dubbo的@Service
- 将controller中的spring的@AutoWired改为dubbo的@Reference
- 当dubbo进行dubbo协议通信时需要进行接口封装数据序列化,否则会调用失败
- dubbo的服务在3秒钟之内会间隔一秒进行一次重新访问,默认一秒钟超时,三次访问之后,直接会抛出超时异常,因此我们在开发阶段,可以将consumer(消费者)设置超时时间,方便断点调试程序;
- 设置请求是否检查服务存在为false,好处是防止服务之间因为调用其他服务但没有启动时抛出异常