spirngboot集成dubbo

先看下项目结构
spirngboot集成dubbo_第1张图片

消费者和提供者都需要的接口dubbo-interface

spirngboot集成dubbo_第2张图片

消费者console

1.pom.xml文件引入的jar包:

<!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

2.yml配置类dubbo配置:

dubbo:
  application:
    #注册到注册中心的名称
    name: console
  protocol:
    #端口号
    port: 20881
  registry:
    #注册中心
    address: zookeeper://192.168.216.130:2181

3.controller层引用

@RequestMapping
@Controller
public class TestController {
	//dubbo包下的Reference
	@Reference
    TestService testService;
    
	@RequestMapping("/test/dubbo")
    @ResponseBody
    public String testDubbo(){
        return testService.testDubbo();
    }

}

4.启动类的注解修改

//当我没有加scanBasePackages 的时候,启动报空指针异常,这点需要注意,这是扫描接口的路径,在子项目dubbo-interface下
@EnableDubbo(scanBasePackages = "{src.main.java.com.wtc.service}")
@EnableDiscoveryClient
@SpringBootApplication
public class ConsoleApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsoleApplication.class, args);
    }

}

服务提供者 provide

1.pom.xml文件引入的jar包和消费者一样
2.yml配置文件和消费者也一样,注意下dubbo.application.name不和消费者一样就行
3.启动类的注解

//开启dubbo
@EnableDubbo
@MapperScan("com.wtc.mapper")
@EnableDiscoveryClient
//这点需要注意:刚开始我没有加这些包扫描,它默认扫描所有的包,但是我的接口实现类使用的注解是@Service(dubbo下的注解),则报不能创建service的//bean,所以我就把加入容器中的注解扫描改成,只扫描这几个包下的,使用dubbo注解@Service的类,不让容器来管理
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class},scanBasePackages = {"com.wtc.conf","com.wtc.mysqlConfig"
})
public class ProvideApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProvideApplication.class, args);
    }

}

4.接口实现类

//这个注解是dubbo下的
@Service
public class TestServiceImpl implements TestService {

    @Autowired
    TestMapper testMapper;
    
    @Override
    public List<Student> findShardingPage(int pageSize , int offset){
        return testMapper.findShardingPage(pageSize,offset);
    }

    @Override
    public String testDubbo() {
        return "dubbo";
    }
}

OK,都这里我们简单的继承就都OK了,然后分别启动console和provide,然后调用接口:http://localhost:8082/test/dubbo
spirngboot集成dubbo_第3张图片
然后我们测试下连接数据库,我这里做了分库分表查询,接口是:http://localhost:8082/test/shardingPage?pageSize=5&offset=1
在这里插入图片描述控制台显示:
spirngboot集成dubbo_第4张图片OK,简单集成dubbo搞定,我使用的是注解形式的,如果你想使用别的形式,可以直接查看dubbo文档

你可能感兴趣的:(dubbo)