将需要暴露的接口写在这里。实体类一定要序列化
public interface TestService {
/**
* 测试
* @param name
* @param age
* @return
*/
User test(String name, Integer age);
}
public class User implements Serializable {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
<!-- duboo相关依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
<!-- 依赖暴露接口-->
<dependency>
<groupId>com.dubbo.demo</groupId>
<artifactId>dubbo-interface</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
server:
port: 8081
servlet:
context-path: /
dubbo:
application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
name: dubbo-provider
registry: #注册中心配置,用于配置连接注册中心相关信息。
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
protocol: #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
name: dubbo
port: 20880
@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.service.**")
public class DubboProviderApplication {
public static void main(String[] args) {
SpringApplication.run(DubboProviderApplication.class, args);
}
}
@Component
@Service //使用 org.apache.dubbo下的注解
public class TestServiceImpl implements TestService {
@Override
public User test(String name, Integer age) {
User user = new User();
user.setName(name);
user.setAge(age);
return user;
}
}
<!-- duboo相关依赖-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.1</version>
<type>pom</type>
</dependency>
<!-- 依赖暴露接口-->
<dependency>
<groupId>com.dubbo.demo</groupId>
<artifactId>dubbo-interface</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
server:
port: 8080
servlet:
context-path: /
dubbo:
application: #应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
name: dubbo-provider
registry: #注册中心配置,用于配置连接注册中心相关信息。
address: zookeeper://127.0.0.1:2181
metadata-report:
address: zookeeper://127.0.0.1:2181
protocol: #协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
name: dubbo
port: 20880
@SpringBootApplication
@EnableDubbo(scanBasePackages="com.example.demo.web")
public class DubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(DubboConsumerApplication.class, args);
}
}
@RestController
public class TestController {
@Reference(check=false,interfaceClass=TestService.class)
private TestService testService;
@PostMapping("test")
public User test(String name, Integer age) {
return testService.test(name, age);
}
}
原文:https://www.cnblogs.com/dylijq/p/14776142.html