SpringBoot整合Dubbo--provider
阿新 • • 發佈:2018-12-02
目錄結構:
pom檔案:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>springboot</groupId> <artifactId>springboot-dubbo-server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-dubbo 服務端:: 整合 Dubbo/ZooKeeper 詳解 SOA 案例</name> <!-- Spring Boot 啟動父依賴 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <dubbo-spring-boot>1.0.0</dubbo-spring-boot> </properties> <dependencies> <!-- Spring Boot Dubbo 依賴 --> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>${dubbo-spring-boot}</version> </dependency> <!-- Spring Boot Web 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Test 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- Junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project>
application.properties:
## 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=20882 spring.dubbo.scan=org.spring.springboot.dubbo
City :
package org.spring.springboot.domain; 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; } }
CityDubboService:
package org.spring.springboot.dubbo; import org.spring.springboot.domain.City; /** * 城市業務 Dubbo 服務層 * * Created by bysocket on 28/02/2017. */ public interface CityDubboService { /** * 根據城市名稱,查詢城市資訊 * @param cityName */ City findCityByName(String cityName); }
CityDubboServiceImpl:
package org.spring.springboot.dubbo.impl; import com.alibaba.dubbo.config.annotation.Service; import org.spring.springboot.domain.City; import org.spring.springboot.dubbo.CityDubboService; import org.springframework.beans.factory.annotation.Autowired; /** * 城市業務 Dubbo 服務層實現層 * */ // 註冊為 Dubbo 服務 @Service(version = "1.0.0") public class CityDubboServiceImpl implements CityDubboService { public City findCityByName(String cityName) { return new City(1L,2L,"忠縣","是我的故鄉"); } }
ServerApplication啟動類:
package org.spring.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Spring Boot 應用啟動類 * * Created by bysocket on 16/4/26. */ // Spring Boot 應用的標識 @SpringBootApplication public class ServerApplication { public static void main(String[] args) { // 程式啟動入口 // 啟動嵌入式的 Tomcat 並初始化 Spring 環境及其各 Spring 元件 SpringApplication.run(ServerApplication.class,args); } }
直接啟動:
服務釋出成功!!!