探花项目合成开发文档

                               

 以下分二部份,第一javaspringboot 用   dubbo    第二部份  springcloud  使用dubbo

 

开发架构核心 ,我们采用Dubbo    来做远程通信,

解决Dubbo通信  ,我们需要借助注册发现。第一步安装注册发现,第二步安装doubbo 的管理端,这二是图形端的查看工具

 以下是服务层提供的微服务代码,一般操作中,这个服务层service 消费端和服务端要包名,接口名,都要一样。所以不方便管理,所以在下面的优化中要单独抽出服务层

 

服务导需要依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>dubbo-demo</artifactId>
        <groupId>cn.itcast</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>user-provider</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

        <!--dubbo的起步依赖-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.8</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>2.7.8</version>
        </dependency>

      
    </dependencies>
</project>

 

第二步修改配置,以下配置位于resources 目录,服务提供层的微服务

#tomcat 的端口
server:
  port: 18080      
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dubbo-demo?useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: user-provider
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: HH:mm:ss:SSS
#配置dubbo提供者
#dubbo协议和访问端口
dubbo:
  protocol:
    name: dubbo
    port: 20881
#注册中心的地址
  registry:
    address: nacos://127.0.0.1:8848
#dubbo注解的包扫描
  scan:
    base-packages: cn.itcast.user.service

 

 

爆露服务   将服务层的实现层@Service 改成      @DubboService      备注: 红色表示重要的地方

// 暴露 Dubbo 服务
@DubboService
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public String queryUsername(Long id) {
        return userMapper.findById(id).getUsername();
    }
}

 

服务消费层编写,重点是消费层也要有服务的包,要和提供层包名一样,不过这儿是接口,没有实现,也不需要实现,
然后在控制层调用的时候

 配置的话简单很多。

 依融包也

 

 

因为无论是消费者还是服务提供者都要写服务层,改动不便,所以我们将需要远程的服务接口单独拧成一个包,打包,让别微服务依赖,

将接口抽取为独立模块,并且把接口有关的域都放到这个模块中。

他的设计是单独将服务层对象的和服务层的接口单独拧出来,但是服务提供者的servic实现的方法仍然没有动

如果是多版本管理

 

                                                                           第二部份说是springcloud 整合dubbos

 

posted @ 2025-07-02 10:38  谢双元小号  阅读(158)  评论(0)    收藏  举报