1.写在前面
这里我来总结一下SpringBoot集成dubbo的小案例,那么有关dubbo的内容,就不多说了,可以参考下面这张图中的分栏中的文章。
下面,来说一说SpringBoot集成dubbo分布式框架的一个思路:
首先了话,仍然需要三个工程。
a. pom文件中添加依赖(dubbo、注册中心zookeeper、接口工程)
2.案例分析
2.1 接口工程
业务接口
package com.szh.springboot.service;
/**
*
*/
public interface StudentService {
Integer queryAllStudentCount();
}
2.2 服务提供者
SpringBoot核心配置文件
# 配置内嵌tomcat的端口号和上下文跟
server.port=8081
server.servlet.context-path=/
# 配置dubbo
# 声明dubbo服务提供者的名称:保证唯一性
spring.application.name=012-springboot-dubbo-provider
# 当前工程是一个服务提供者
spring.dubbo.server=true
# 设置注册中心的地址端口号
spring.dubbo.registry=zookeeper://localhost:2181
对业务接口方法的实现。@Component注解表示将该实现类加载到spring容器中。@Service注解(这个注解和Spring下的@Service注解不一样,它是dubbo下属的直接)interface指的是暴露接口服务,version是版本号,timeout是超时时间。
package com.szh.springboot.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.szh.springboot.service.StudentService;
import org.springframework.stereotype.Component;
/**
*
*/
@Component
@Service(interfaceClass = StudentService.class,version = "1.0.0",timeout = 15000)
public class StudentServiceImpl implements StudentService {
@Override
public Integer queryAllStudentCount() {
return 666;
}
}
pom文件
<!-- SpringBoot框架web项目起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- dubbo集成SpringBoot框架的起步依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- 注册中心zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.4</version>
</dependency>
<!-- 接口工程 -->
<dependency>
<groupId>com.szh.springboot</groupId>
<artifactId>011-springboot-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>
最后是SpringBoot项目启动入口类
package com.szh.springboot;
import com.alibaba.dubbo.spring.boot.annotation.EnabledubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //开启Spring注解配置
@EnabledubboConfiguration //开启dubbo注解配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.3 服务消费者
SpringBoot核心配置文件
# 配置内嵌tomcat的端口号和上下文跟
server.port=8080
server.servlet.context-path=/
# 配置dubbo
# 声明dubbo服务消费者的名称:保证唯一性
spring.application.name=013-springboot-dubbo-consumer
# 设置注册中心的地址端口号
spring.dubbo.registry=zookeeper://localhost:2181
package com.szh.springboot.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.szh.springboot.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
*
*/
@Controller
public class StudentController {
@Reference(interfaceClass = StudentService.class,version = "1.0.0",check = false)
private StudentService studentService;
@RequestMapping(value = "/student/count")
public @ResponseBody Object studentCount() {
Integer allStudentCount=studentService.queryAllStudentCount();
return "学生总人数为:" + allStudentCount;
}
}
package com.szh.springboot;
import com.alibaba.dubbo.spring.boot.annotation.EnabledubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //开启Spring注解配置
@EnabledubboConfiguration //开启dubbo注解配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.4 启动测试!!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。