一、创建provder工程
1.引入依赖
<!-- dubbo公用模块依赖 需要自己建一个公用的接口模块 -->
<dependency>
<groupId>com</groupId>
<artifactId>dubbo-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 整合dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
<!-- 排除这个log4j -->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- zk依赖 -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.13</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.2.0</version>
</dependency>
2.配置yml
1.配置项目端口
2.配置dubbo应用程序名称
3.配置注册中心
4.配置dubbo协议和端口(通过端口提供服务)
server:
port: 8881
dubbo:
application:
name: boot-provider
registry:
address: zookeeper://127.0.0.1:2181
protocol:
name: dubbo
port: 9991
3.编写实现类
@Component
@DubboService
public class UserServiceImpl implements UserService {
@Override
public User findById(int id) {
User user = new User();
user.setId(id);
user.setUsername("alice");
user.setPassword("123");
return user;
}
}
4.启用dubbo
@SpringBootApplication
@EnableDubbo //启用dubbo
public class BootProviderApplication {
public static void main(String[] args) {
SpringApplication.run(BootProviderApplication.class, args);
}
}
二.创建consumer工程
1.引入依赖,同1.1
2.编写使用类
@DubboReference
private UserService userService;
@RequestMapping("/getUserById")
public String getUserById(String id, Model model) {
UserBean userBean = userService.getUserById(id);
Object json = JSONObject.toJSON(userBean);
model.addAttribute("user", json);
return "success";
}
3.配置dubbo
server:
port: 8882
dubbo:
application:
name: boot-consumer
registry:
address: zookeeper://127.0.0.1:2181
spring:
thymeleaf:
cache: false
mode: HTML
prefix: classpath:/templates/
#prefix: /WEB-INF/
suffix: .html
4.启用dubbo
@SpringBootApplication
@ComponentScan(basePackages = { "com.dubbo" })
@EnableDubbo
public class Application {
public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(Application.class, args);
}
}