栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring boot 整合dubbo

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring boot 整合dubbo

1.使用zookeeper作为注册中心,所以需要在服务器上安装zookeeper,将Dubbo Admin 先运行在服务器上,以便查看服务状态

2.导入sql:

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROp TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `sex` varchar(25) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '王尔瓦', '女', 20);
INSERT INTO `user` VALUES (2, '李四', '男', 21);
INSERT INTO `user` VALUES (3, '王五', '女', 26);

SET FOREIGN_KEY_CHECKS = 1;

3.创建接口类和实体类的工程commons,创建消费者工程consumer,创建生产者工程provider

4.commos工程中创建

实体类:(由于远程服务调用需要网络传输,所以实体类需要实现序列化)

//使用lombok注解简化代码,记得引入依赖,安装Lombok插件
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
}

 接口类:

public interface UserService {
    
    boolean addUser(User user);

    

    boolean deleteUserById(int id);

    
    boolean updateUserById(User user);

    
    User getUserById(int id);

    
    List getAllUser();

}

5.将commons工程安装到本地仓库,在provider工程中引入

pom.xml:



    
        springboot_dubbo
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    dubbo_provider

    
    
        org.example
        dubbo_commons
        1.0-SNAPSHOT
    
    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        com.baomidou
        mybatis-plus-boot-starter
        3.4.1
    
    
    
        mysql
        mysql-connector-java
        8.0.26
    
    
    
        org.apache.dubbo
        dubbo-spring-boot-starter
        2.7.6
    
    
    
        org.apache.dubbo
        dubbo-dependencies-zookeeper
        2.7.6
        pom
        
            
                org.slf4j
                slf4j-log4j12
            
        
    


provider工程中创建服务实现类实现UserService接口(注意service注解是dubbo包中的)

@Service//不是spring中的service而是dubbo中的
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public boolean addUser(User user) {
        return userMapper.addUser(user);
    }

    @Override
    public boolean deleteUserById(int id) {
        return userMapper.deleteUserById(id);
    }

    @Override
    public boolean updateUserById(User user) {
        return userMapper.updateUserById(user);
    }

    @Override
    public User getUserById(int id) {
        return userMapper.getUserById(id);
    }

    @Override
    public List getAllUser() {
        return userMapper.getAllUser();
    }
}

provider工程中创建mapper接口

public interface UserMapper {

    boolean addUser(User user);

    boolean deleteUserById(int id);

    boolean updateUserById(User user);

    User getUserById(int id);

    List getAllUser();
}

provider工程中创建mapper.xml



    
        select * from user
    

provider配置文件:

server:
  port: 8080
spring:
  application:
    name: mc_provider
  #访问数据库
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///dubbo_demo?serverTimezone=UTC&useSSL=true&characterEncoding=utf-8
    username: root
    password: 123456
  #mybatis-plus
mybatis-plus:
  mapper-locations: classpath:mapper
    @RequestMapping("/getAllUser")
    public List getAllUser(){
       return  userService.getAllUser();
    }

    
    @RequestMapping("/addUser")
    public boolean addUser(@RequestBody User user){
        return  userService.addUser(user);
    }

    
    @RequestMapping("/deleteUserById")
    public boolean deleteUserById(int id){
        return  userService.deleteUserById(id);
    }

    
    @RequestMapping("/updateUserById")
    public boolean updateUserById(@RequestBody User user){
        return  userService.updateUserById(user);
    }

    
    @RequestMapping("/getUserById")
    public User getUserById(int id){
        return  userService.getUserById(id);
    }
}

配置文件:

server:
  port: 8081
dubbo:
  application:
    name: dubbo_customer
  registry:
    address: zookeeper://192.14.80.206:2181
    timeout: 10000

启动类:(注意加上开启dubbo注解)

@SpringBootApplication
@EnableDubbo//开启dubbo
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class,args);
    }
}

7.先启动生产者工程,再启动消费者工程

消费者能够调用到服务

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号