分布式项目14 使用dubbo进行系统之间的通信,不用jsonp

使用jsonp技术,前端的ajax需要把方法的datatype写成jsonp,并且在controller类中返回值类型是jsonPObject,这个是特有的java的api,用于jsonp技术。

分布式项目可以使用dubbo框架。
第一步:导入dubbo依赖


<dependency>
<groupId>com.alibaba.bootgroupId>
<artifactId>dubbo-spring-boot-starterartifactId>
<version>0.2.0version>
dependency>

第二步:
编辑服务provider,在公共模块创建dubbo接口
在jt-common中创建:

//定义dubbo自己的接口
public interface DubboUserService {
}

第三步:在相关模块中去创建接口实现类。

package com.jt.service;
import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Service;
import com.jt.mapper.UserMapper;
//这是dubbo的实现类
@Service
public class DubboUserServiceImpl implements DubboUserService {
@Autowired
private UserMapper userMapper;
}

这里的注解是com.alibaba.dubbo.config.annotation.Service;是dubbo的注解。

第四步:在接口实现类中的项目里面修改application.yml文件

dubbo:
scan:
basePackages: com.jt
application:
name: provider-user
registry:
address: zookeeper://192.168.126.129:2181?
backup=192.168.126.129:2182,192.168.126.129:2183
protocol:
name: dubbo
port: 20880

表示这个是一个provider

第五步:编辑服务消费者
UserController:说明:编辑jt-web的UserController实现接口的注入.

import com.alibaba.dubbo.config.annotation.Reference;
import com.jt.service.DubboUserService;
@Controller
@RequestMapping("/user")
public class UserController {
//引入dubbo配置
@Reference(check=false) //消费者启动时暂时不检查服务是否有提供者.
private DubboUserService userService;
....
}

@Reference(check=false) //消费者启动时暂时不检查服务是否有提供者.启动接口,需要专门的dubbo注解
import com.alibaba.dubbo.config.annotation.Reference;
import com.jt.service.DubboUserService;
第六步:编辑消费者的YML配置,说明:配置jt-web的application.yml文件

dubbo:
scan:
basePackages: com.jt
application:
name: consumer-user
registry:
address: zookeeper://192.168.126.129:2181?
backup=192.168.126.129:2182,192.168.126.129:2183

你可能感兴趣的:(dubbo,分布式,java)