栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spring boot 项目(十七)——集成 dubbo + mybatis-plus

Spring boot 项目(十七)——集成 dubbo + mybatis-plus

引言

Dubbo 是阿里巴巴开源的基于 Java 的高性能 RPC 框架,本文介绍 Spring Boot 集成 Dubbo 的开发过程

前期准备

1、配置好的zookeeper

参考链接:Windows:快速安装zookeeper教程

2、多模块的SpringBoot项目

参考链接:IDEA创建Maven+SpringBoot多模块工程

集成步骤 1、集成dubbo provider(服务提供者)

1、pom文件

        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        

2、application文件

spring.application.name=dubbo-provider
spring.application.version=1.8
#dubbo配置
dubbo.scan.basePackages=com.dubbo.provider.service
dubbo.application.id=dubbo-provider
dubbo.application.name=dubbo-provider
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.id=zookeeper
dubbo.registry.address=zookeeper://127.0.0.1:2181


3、接口

public interface GreetingService {
    String welcome(String name);
}

4、service层

import com.alibaba.dubbo.config.annotation.Service;
import com.dubbo.provider.service.GreetingService;
import java.time.LocalDateTime;
@Service(version = "${spring.application.version}",
        application = "${dubbo.application.id}",
        protocol = "${dubbo.protocol.id}",
        registry = "${dubbo.registry.id}")
public class GreetingServiceImpl implements GreetingService {

    @Override
    public String welcome(String name) {
        String msg = "Welcome " + name + " at " + LocalDateTime.now();
        System.out.println(msg);
        return msg;
    }
}
consumer(服务消费者)

1、pom文件

        
            com.dubbo
            provider
            0.0.1-SNAPSHOT
            compile
        
        
            com.alibaba.boot
            dubbo-spring-boot-starter
            0.2.0
        


2、application文件

spring.application.name=dubbo-consumer
spring.application.version=1.8

dubbo.application.id=dubbo-consumer
dubbo.application.name=dubbo-consumer
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.id=zookeeper
dubbo.registry.address=zookeeper://127.0.0.1:2181

3、controller层

import com.alibaba.dubbo.config.annotation.Reference;
import com.dubbo.provider.service.GreetingService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ConsumerController {
    @Reference(version = "${spring.application.version}",
            application = "${spring.application.id}",
            registry = "${dubbo.registry.address}")
    private GreetingService greetingService;
    @Scheduled(fixedRate = 3000)
    public void consume() {
        System.out.println(greetingService.welcome("Dubbo"));
    }
}

4、启动器

测试结果

1、启动zookeeper
2、启动provider


3、启动consumer



4、断开provider

5、重新启动provider

2、集成mybatis-plus(在dubbo基础上添加) provider(服务提供者)

1、pom文件

        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.1
        
        
            mysql
            mysql-connector-java
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.2
        

2、application文件

# 关闭缓存,默认开启
spring.thymeleaf.cache= false 
#    prefix: classpath:/pages/  #修改默认路径 classpath:/templates/
spring.datasource.url= jdbc:mysql://localhost:3306/dubbo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username= root
spring.datasource.password= 123456
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
# mybatis-plus配置
mybatis-plus.configuration.log-impl= org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.typeAliasesPackage=com.dubbo.provider.entity
mybatis-plus.mapperLocations= classpath:mapper
    User getUser(String userName);
}

6、实现层

import com.alibaba.dubbo.config.annotation.Service;
@Service
public class UserServiceImpl extends ServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;
    @Override
    public User getUser(String userName) {
        QueryWrapper queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("user_name",userName);
        return userMapper.selectOne(queryWrapper);
    }
}

7、mapper层(dao层)

public interface UserMapper extends baseMapper {
}

8、启动器

consumer(服务消费者)

1、pom文件

        
            mysql
            mysql-connector-java
        

2、application文件

spring.datasource.url= jdbc:mysql://localhost:3306/dubbo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username= root
spring.datasource.password= 123456
spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver

3、controller层

    @Reference
    private UserService userService;
    @Scheduled(fixedRate = 3000)
    public void getUser() {
        System.out.println(userService.getUser("流星").getAge());
    }
测试结果

1、启动zookeeper
2、启动provider
3、启动consumer

附:扩展资料

解析dubbo框架

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

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

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