@@ -37,7 +37,7 @@ | |||
- [ ] spring-boot-demo-urule(集成 urule 实现规则引擎) | |||
- [ ] spring-boot-demo-activiti(集成 Activiti 实现流程控制引擎) | |||
- [ ] spring-boot-demo-async(Spring boot 实现异步调用) | |||
- [ ] spring-boot-demo-dubbo(集成 dubbo) | |||
- [x] ~~spring-boot-demo-dubbo(集成 dubbo)~~ | |||
- [x] ~~spring-boot-demo-war(打包成war包)~~ | |||
- [x] ~~spring-boot-demo-elasticsearch(集成 ElasticSearch,使用原生操作 ES 的方式)~~ | |||
@@ -0,0 +1,25 @@ | |||
/target/ | |||
!.mvn/wrapper/maven-wrapper.jar | |||
### STS ### | |||
.apt_generated | |||
.classpath | |||
.factorypath | |||
.project | |||
.settings | |||
.springBeans | |||
.sts4-cache | |||
### IntelliJ IDEA ### | |||
.idea | |||
*.iws | |||
*.iml | |||
*.ipr | |||
### NetBeans ### | |||
/nbproject/private/ | |||
/build/ | |||
/nbbuild/ | |||
/dist/ | |||
/nbdist/ | |||
/.nb-gradle/ |
@@ -0,0 +1,116 @@ | |||
# spring-boot-demo-dubbo-parent | |||
依赖 [非官方的spring-boot-starter-dubbo](https://gitee.com/reger/spring-boot-starter-dubbo) | |||
更新 springboot 版本为 2.0.1.RELEASE | |||
本身是个父依赖,包含了3个 module | |||
| 名称 | 作用 | | |||
| :----------------------------------------------------------- | :-------------------------------------- | | |||
| [spring-boot-demo-dubbo-api](./spring-boot-demo-dubbo-api/pom.xml) | Spring Boot 与 Dubbo 整合抽取的服务接口 | | |||
| [spring-boot-demo-dubbo-provider](./spring-boot-demo-dubbo-provider/pom.xml) | Spring Boot 与 Dubbo 整合服务的提供方 | | |||
| [spring-boot-demo-dubbo-consumer](./spring-boot-demo-dubbo-consumer/pom.xml) | Spring Boot 与 Dubbo 整合服务的消费方 | | |||
### pom.xml | |||
```xml | |||
<?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>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>pom</packaging> | |||
<name>spring-boot-demo-dubbo-parent</name> | |||
<description>Spring Boot 与 Dubbo 整合的父依赖</description> | |||
<parent> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-parent</artifactId> | |||
<version>2.0.1.RELEASE</version> | |||
<relativePath/> <!-- lookup parent from repository --> | |||
</parent> | |||
<modules> | |||
<module>spring-boot-demo-dubbo-api</module> | |||
<module>spring-boot-demo-dubbo-provider</module> | |||
<module>spring-boot-demo-dubbo-consumer</module> | |||
</modules> | |||
<properties> | |||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
<java.version>1.8</java.version> | |||
<spring-boot-starter-dubbo.version>1.1.1</spring-boot-starter-dubbo.version> | |||
</properties> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.gitee.reger</groupId> | |||
<artifactId>spring-boot-starter-dubbo</artifactId> | |||
<version>${spring-boot-starter-dubbo.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.projectlombok</groupId> | |||
<artifactId>lombok</artifactId> | |||
<version>1.16.20</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-test</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-api</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> | |||
``` | |||
### 步骤 | |||
1. 启动本地的 `Zookeeper` 服务,端口号为 **2181** | |||
> 这里 `Zookeeper` 可以直接使用单机版,如果需要配置集群版的,可以参考 http://xkcoding.com/2017/11/01/zookeeper-cluster.html | |||
2. 启动两个 `spring-boot-demo-dubbo-provider` 程序,端口号分别使用 **8082**、**8083** | |||
3. 启动 `spring-boot-demo-dubbo-consumer` 程序,端口号为 **9090** | |||
4. 浏览器输入 http://localhost:9090/greet?name=test | |||
可以看到,**8082**和**8083**端口随机打印 | |||
> Hello, test, from port: 8082 | |||
或 | |||
> Hello, test, from port: 8083 | |||
5. 本地启动 `dubbo-admin` 可以查看服务提供方和消费方,也可以配置负载均衡策略等等 | |||
> 关于 `dubbo-admin` 的安装和配置等,可以参考 http://xkcoding.com/2017/11/08/dubbo-admin-install.html |
@@ -0,0 +1,74 @@ | |||
<?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>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>pom</packaging> | |||
<name>spring-boot-demo-dubbo-parent</name> | |||
<description>Spring Boot 与 Dubbo 整合的父依赖</description> | |||
<parent> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-parent</artifactId> | |||
<version>2.0.1.RELEASE</version> | |||
<relativePath/> <!-- lookup parent from repository --> | |||
</parent> | |||
<modules> | |||
<module>spring-boot-demo-dubbo-api</module> | |||
<module>spring-boot-demo-dubbo-provider</module> | |||
<module>spring-boot-demo-dubbo-consumer</module> | |||
</modules> | |||
<properties> | |||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
<java.version>1.8</java.version> | |||
<spring-boot-starter-dubbo.version>1.1.1</spring-boot-starter-dubbo.version> | |||
</properties> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.gitee.reger</groupId> | |||
<artifactId>spring-boot-starter-dubbo</artifactId> | |||
<version>${spring-boot-starter-dubbo.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.projectlombok</groupId> | |||
<artifactId>lombok</artifactId> | |||
<version>1.16.20</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-test</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-api</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> |
@@ -0,0 +1,165 @@ | |||
# spring-boot-demo-dubbo-consumer | |||
Spring Boot 与 Dubbo 整合服务的消费方 | |||
依赖 [spring-boot-demo-dubbo-api](../spring-boot-demo-dubbo-api/pom.xml) | |||
### pom.xml | |||
```xml | |||
<?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> | |||
<artifactId>spring-boot-demo-dubbo-consumer</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>jar</packaging> | |||
<name>spring-boot-demo-dubbo-consumer</name> | |||
<description>Spring Boot 与 Dubbo 整合服务的消费方</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<relativePath>../pom.xml</relativePath> | |||
</parent> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> | |||
``` | |||
### application.yml | |||
```yaml | |||
server: | |||
port: 9090 | |||
spring: | |||
dubbo: | |||
application: | |||
name: dubbo-consumer | |||
base-package: com.xkcoding.springbootdemodubboconsumer.service # dubbo服务调用者所在的包 | |||
registry: | |||
address: 127.0.0.1 # zookeeper注册中心的地址 | |||
port: 2181 # zookeeper注册中心的端口 | |||
consumer: | |||
timeout: 1000 | |||
check: true # 服务启动时检查被调用服务是否可用 | |||
retries: 2 | |||
``` | |||
### GreetController.java | |||
```java | |||
package com.xkcoding.springbootdemodubboconsumer.controller; | |||
import com.xkcoding.springbootdemodubboconsumer.service.GreetService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.web.bind.annotation.GetMapping; | |||
import org.springframework.web.bind.annotation.RequestMapping; | |||
import org.springframework.web.bind.annotation.RequestParam; | |||
import org.springframework.web.bind.annotation.RestController; | |||
/** | |||
* <p> | |||
* GreetController | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.controller | |||
* @description: GreetController | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:29 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@RestController | |||
@RequestMapping("/greet") | |||
public class GreetController { | |||
@Autowired | |||
private GreetService greetService; | |||
@GetMapping("") | |||
public String hello(@RequestParam String name) { | |||
return greetService.greeting(name); | |||
} | |||
} | |||
``` | |||
### GreetService.java | |||
```java | |||
package com.xkcoding.springbootdemodubboconsumer.service; | |||
/** | |||
* <p> | |||
* GreetService | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.service | |||
* @description: GreetService | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:30 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
public interface GreetService { | |||
String greeting(String name); | |||
} | |||
``` | |||
### GreetServiceImpl.java | |||
代码中的 `@Service` 使用的是 `Spring` 的注解,而不是 `Dubbo` 的注解 | |||
代码中的 `@Inject` 可以替换成 `Dubbo` 提供的 `@Reference`,效果相同 | |||
```java | |||
package com.xkcoding.springbootdemodubboconsumer.service.impl; | |||
import com.reger.dubbo.annotation.Inject; | |||
import com.xkcoding.springbootdemodubboapi.service.HelloService; | |||
import com.xkcoding.springbootdemodubboconsumer.service.GreetService; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* <p> | |||
* GreetServiceImpl | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.service.impl | |||
* @description: GreetServiceImpl | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:31 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@Service | |||
public class GreetServiceImpl implements GreetService { | |||
@Inject | |||
private HelloService helloService; | |||
@Override | |||
public String greeting(String name) { | |||
return helloService.hello(name); | |||
} | |||
} | |||
``` | |||
@@ -0,0 +1,35 @@ | |||
<?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> | |||
<artifactId>spring-boot-demo-dubbo-consumer</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>jar</packaging> | |||
<name>spring-boot-demo-dubbo-consumer</name> | |||
<description>Spring Boot 与 Dubbo 整合服务的消费方</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<relativePath>../pom.xml</relativePath> | |||
</parent> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> |
@@ -0,0 +1,12 @@ | |||
package com.xkcoding.springbootdemodubboconsumer; | |||
import org.springframework.boot.SpringApplication; | |||
import org.springframework.boot.autoconfigure.SpringBootApplication; | |||
@SpringBootApplication | |||
public class SpringBootDemoDubboConsumerApplication { | |||
public static void main(String[] args) { | |||
SpringApplication.run(SpringBootDemoDubboConsumerApplication.class, args); | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
package com.xkcoding.springbootdemodubboconsumer.controller; | |||
import com.xkcoding.springbootdemodubboconsumer.service.GreetService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.web.bind.annotation.GetMapping; | |||
import org.springframework.web.bind.annotation.RequestMapping; | |||
import org.springframework.web.bind.annotation.RequestParam; | |||
import org.springframework.web.bind.annotation.RestController; | |||
/** | |||
* <p> | |||
* GreetController | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.controller | |||
* @description: GreetController | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:29 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@RestController | |||
@RequestMapping("/greet") | |||
public class GreetController { | |||
@Autowired | |||
private GreetService greetService; | |||
@GetMapping("") | |||
public String hello(@RequestParam String name) { | |||
return greetService.greeting(name); | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
package com.xkcoding.springbootdemodubboconsumer.service; | |||
/** | |||
* <p> | |||
* GreetService | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.service | |||
* @description: GreetService | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:30 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
public interface GreetService { | |||
String greeting(String name); | |||
} |
@@ -0,0 +1,30 @@ | |||
package com.xkcoding.springbootdemodubboconsumer.service.impl; | |||
import com.reger.dubbo.annotation.Inject; | |||
import com.xkcoding.springbootdemodubboapi.service.HelloService; | |||
import com.xkcoding.springbootdemodubboconsumer.service.GreetService; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* <p> | |||
* GreetServiceImpl | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboconsumer.service.impl | |||
* @description: GreetServiceImpl | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:31 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@Service | |||
public class GreetServiceImpl implements GreetService { | |||
@Inject | |||
private HelloService helloService; | |||
@Override | |||
public String greeting(String name) { | |||
return helloService.hello(name); | |||
} | |||
} |
@@ -0,0 +1,14 @@ | |||
server: | |||
port: 9090 | |||
spring: | |||
dubbo: | |||
application: | |||
name: dubbo-consumer | |||
base-package: com.xkcoding.springbootdemodubboconsumer.service # dubbo服务调用者所在的包 | |||
registry: | |||
address: 127.0.0.1 # zookeeper注册中心的地址 | |||
port: 2181 # zookeeper注册中心的端口 | |||
consumer: | |||
timeout: 1000 | |||
check: true # 服务启动时检查被调用服务是否可用 | |||
retries: 2 |
@@ -0,0 +1,16 @@ | |||
package com.xkcoding.springbootdemodubboconsumer; | |||
import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.springframework.boot.test.context.SpringBootTest; | |||
import org.springframework.test.context.junit4.SpringRunner; | |||
@RunWith(SpringRunner.class) | |||
@SpringBootTest | |||
public class SpringBootDemoDubboConsumerApplicationTests { | |||
@Test | |||
public void contextLoads() { | |||
} | |||
} |
@@ -0,0 +1,106 @@ | |||
# spring-boot-demo-dubbo-provider | |||
Spring Boot 与 Dubbo 整合服务的提供方 | |||
依赖 [spring-boot-demo-dubbo-api](../spring-boot-demo-dubbo-api/pom.xml) | |||
### pom.xml | |||
```xml | |||
<?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> | |||
<artifactId>spring-boot-demo-dubbo-provider</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>jar</packaging> | |||
<name>spring-boot-demo-dubbo-provider</name> | |||
<description>Spring Boot 与 Dubbo 整合服务的提供方</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<relativePath>../pom.xml</relativePath> | |||
</parent> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> | |||
``` | |||
### application.yml | |||
```yaml | |||
server: | |||
port: 8082 | |||
spring: | |||
dubbo: | |||
application: | |||
name: dubbo-provider | |||
base-package: com.xkcoding.springbootdemodubboprovider.service # dubbo服务发布者所在的包 | |||
registry: | |||
address: 127.0.0.1 # zookeeper注册中心的地址 | |||
port: 2181 # zookeeper注册中心的端口 | |||
protocol: | |||
name: dubbo | |||
serialization: hessian2 | |||
provider: | |||
retries: 0 | |||
``` | |||
### HelloServiceImpl.java | |||
代码中的 `@Service` 使用的是 `Dubbo` 的注解,而不是 `Spring` 的注解 | |||
```java | |||
package com.xkcoding.springbootdemodubboprovider.service.impl; | |||
import com.alibaba.dubbo.config.annotation.Service; | |||
import com.xkcoding.springbootdemodubboapi.service.HelloService; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.springframework.beans.factory.annotation.Value; | |||
/** | |||
* <p> | |||
* HelloServiceImpl | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboprovider.service.impl | |||
* @description: HelloServiceImpl | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:24 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@Service | |||
@Slf4j | |||
public class HelloServiceImpl implements HelloService { | |||
@Value("${server.port}") | |||
private Integer port; | |||
@Override | |||
public String hello(String name) { | |||
log.info("Hello, {}, from port: {}",name, port); | |||
return "Hello, " + name + ", from port: " + port; | |||
} | |||
} | |||
``` | |||
@@ -0,0 +1,36 @@ | |||
<?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> | |||
<artifactId>spring-boot-demo-dubbo-provider</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<packaging>jar</packaging> | |||
<name>spring-boot-demo-dubbo-provider</name> | |||
<description>Spring Boot 与 Dubbo 整合服务的提供方</description> | |||
<parent> | |||
<groupId>com.xkcoding</groupId> | |||
<artifactId>spring-boot-demo-dubbo-parent</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<relativePath>../pom.xml</relativePath> | |||
</parent> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter-web</artifactId> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> | |||
<plugin> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-maven-plugin</artifactId> | |||
</plugin> | |||
</plugins> | |||
</build> | |||
</project> |
@@ -0,0 +1,12 @@ | |||
package com.xkcoding.springbootdemodubboprovider; | |||
import org.springframework.boot.SpringApplication; | |||
import org.springframework.boot.autoconfigure.SpringBootApplication; | |||
@SpringBootApplication | |||
public class SpringBootDemoDubboProviderApplication { | |||
public static void main(String[] args) { | |||
SpringApplication.run(SpringBootDemoDubboProviderApplication.class, args); | |||
} | |||
} |
@@ -0,0 +1,32 @@ | |||
package com.xkcoding.springbootdemodubboprovider.service.impl; | |||
import com.alibaba.dubbo.config.annotation.Service; | |||
import com.xkcoding.springbootdemodubboapi.service.HelloService; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.springframework.beans.factory.annotation.Value; | |||
/** | |||
* <p> | |||
* HelloServiceImpl | |||
* </p> | |||
* | |||
* @package: com.xkcoding.springbootdemodubboprovider.service.impl | |||
* @description: HelloServiceImpl | |||
* @author: yangkai.shen | |||
* @date: Created in 2018/4/17 下午5:24 | |||
* @copyright: Copyright (c) 2018 | |||
* @version: V1.0 | |||
* @modified: yangkai.shen | |||
*/ | |||
@Service | |||
@Slf4j | |||
public class HelloServiceImpl implements HelloService { | |||
@Value("${server.port}") | |||
private Integer port; | |||
@Override | |||
public String hello(String name) { | |||
log.info("Hello, {}, from port: {}",name, port); | |||
return "Hello, " + name + ", from port: " + port; | |||
} | |||
} |
@@ -0,0 +1,15 @@ | |||
server: | |||
port: 8082 | |||
spring: | |||
dubbo: | |||
application: | |||
name: dubbo-provider | |||
base-package: com.xkcoding.springbootdemodubboprovider.service # dubbo服务发布者所在的包 | |||
registry: | |||
address: 127.0.0.1 # zookeeper注册中心的地址 | |||
port: 2181 # zookeeper注册中心的端口 | |||
protocol: | |||
name: dubbo | |||
serialization: hessian2 | |||
provider: | |||
retries: 0 |
@@ -0,0 +1,16 @@ | |||
package com.xkcoding.springbootdemodubboprovider; | |||
import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.springframework.boot.test.context.SpringBootTest; | |||
import org.springframework.test.context.junit4.SpringRunner; | |||
@RunWith(SpringRunner.class) | |||
@SpringBootTest | |||
public class SpringBootDemoDubboProviderApplicationTests { | |||
@Test | |||
public void contextLoads() { | |||
} | |||
} |