https://www.cnblogs.com/Alandre/p/6490142.html
1、zookeeper 部署参考https://blog.csdn.net/Dopamy_BusyMonkey/article/details/81989423
2、依赖相同:
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
3、生产者配置:
server.port=8080
#dubbo
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.busy.springboot.dubbo
4、消费者配置:
server.port=8082
#dubbo client
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.busy.springboot.dubbo
4、生产者消费者同时包含实体类和接口类
package com.busy.springboot.dubbo;
import java.io.Serializable;
public class City implements Serializable {
private static final long serialVersionUID = -1L;
/**
* 城市编号
*/
private Long id;
/**
* 省份编号
*/
private Long provinceId;
/**
* 城市名称
*/
private String cityName;
/**
* 描述
*/
private String description;
public City() {
}
public City(Long id, Long provinceId, String cityName, String description) {
this.id = id;
this.provinceId = provinceId;
this.cityName = cityName;
this.description = description;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
package com.busy.springboot.dubbo;
public interface CityDubboService {
City findCityByName(String cityName);
}
5、生产者包含服务实现:
package com.busy.springboot.dubbo;
import com.alibaba.dubbo.config.annotation.Service;
@Service(version = "1.0.0")
public class CityDubboServiceImpl implements CityDubboService {
public City findCityByName(String cityName) {
return new City(1L,2L,cityName,"是我的故乡");
}
}
6、消费者定义Controller,测试接口消费:
package com.busy.springboot.dubbo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.dubbo.config.annotation.Reference;
@Controller
public class CityController {
@Reference(version = "1.0.0")
CityDubboService cityDubboService;
@RequestMapping("/")
@ResponseBody
public String index(){
return "hello,springboot";
}
@RequestMapping("/getCity")
@ResponseBody
public String getCity(){
City city = cityDubboService.findCityByName("赣州");
return city.getCityName()+city.getDescription();
}
}
7、目录结构