zoukankan      html  css  js  c++  java
  • Spring boot配置Dubbo三种方式

    方式一
    使用注解的方式

    导入dubbo-starter
    在application.properties配置属性

    使用@Service暴露服务
    使用@Reference引用服务

    使用@EnableDubbo开启注解Dubbo功能
    或者配置包扫描

    dubbo.scan.base-packages=com.atguigu.gmall
    1
    开启注解、包扫描,配置一个即可

    这种方式
    可以在@Service、@Reference注解中配置属性
    属于类的配置,无法精确到方法的配置

    方式二
    使用dubbo的xml配置文件

    导入dubbo-starter
    使用@ImportResource导入dubbo的配置文件即可

    @ImportResource(locations="classpath:provider.xml")
    1
    dubbo的配置文件,之前怎么写
    现在还是怎么写,没有特殊要求

    这种方式
    可以做到方法的精确配置

    方式三
    使用注解API的方式

    将每一个组件手动创建到容器中
    让dubbo来扫描其他的组件

    参考文档
    http://dubbo.apache.org/zh-cn/docs/user/configuration/annotation.html

    配置类示例

    package com.atguigu.gmall.config;

    import java.util.ArrayList;
    import java.util.List;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    import com.alibaba.dubbo.config.ApplicationConfig;
    import com.alibaba.dubbo.config.MethodConfig;
    import com.alibaba.dubbo.config.MonitorConfig;
    import com.alibaba.dubbo.config.ProtocolConfig;
    import com.alibaba.dubbo.config.ProviderConfig;
    import com.alibaba.dubbo.config.RegistryConfig;
    import com.alibaba.dubbo.config.ServiceConfig;
    import com.atguigu.gmall.service.UserService;

    @Configuration
    public class MyDubboConfig {

        //<dubbo:application name="boot-user-service-provider"></dubbo:application>
        @Bean
        public ApplicationConfig applicationConfig() {
            ApplicationConfig applicationConfig = new ApplicationConfig();
            applicationConfig.setName("boot-user-service-provider");
            return applicationConfig;
        }

        //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
        @Bean
        public RegistryConfig registryConfig() {
            RegistryConfig registryConfig = new RegistryConfig();
            registryConfig.setProtocol("zookeeper");
            registryConfig.setAddress("127.0.0.1:2181");
            return registryConfig;
        }

        //<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
        @Bean
        public ProtocolConfig protocolConfig() {
            ProtocolConfig protocolConfig = new ProtocolConfig();
            protocolConfig.setName("dubbo");
            protocolConfig.setPort(20882);
            return protocolConfig;
        }

        /**
         *<dubbo:service interface="com.atguigu.gmall.service.UserService"
            ref="userServiceImpl01" timeout="1000" version="1.0.0">
            <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
        </dubbo:service>
         */
        @Bean
        public ServiceConfig<UserService> userServiceConfig(UserService userService){
            ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
            serviceConfig.setInterface(UserService.class);
            serviceConfig.setRef(userService);
            serviceConfig.setVersion("1.0.0");

            //配置每一个method的信息
            MethodConfig methodConfig = new MethodConfig();
            methodConfig.setName("getUserAddressList");
            methodConfig.setTimeout(1000);

            //将method的设置关联到service配置中
            List<MethodConfig> methods = new ArrayList<>();
            methods.add(methodConfig);
            serviceConfig.setMethods(methods);

            //ProviderConfig
            //MonitorConfig

            return serviceConfig;
        }

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    配置包扫描路径

    可以,使用@DubboComponentScan注解
    也可以,使用@EnableDubbo注解

    @EnableDubbo注解
    其实,里面配置的就是@DubboComponentScan注解


    扫描包路径

    @EnableDubbo(scanBasePackages="com.atguigu.gmall")
    1
    或者

    @DubboComponentScan(basePackages ="com.atguigu.gmall")
    1
    生产者、消费者
    使用@Service、@Reference注解配置

    转自 https://blog.csdn.net/nangeali/article/details/82527039

  • 相关阅读:
    强化学习的基本迭代方法
    基于文本描述的事务聚类
    学习强化学习之前需要掌握的3种技能
    其它 华硕 ASAU S4100U 系统安装 win10安装 重装系统 Invalid Partition Table 解决
    数据分析 一些基本的知识
    Python 取样式的内容 合并多个文件的样式 自定义样式
    电商 Python 生成补单公司需要的评论格式3
    SpringBlade 本地图片上传 生成缩略图
    SQL Server 字符串截取
    SpringBlade 本地图片上传
  • 原文地址:https://www.cnblogs.com/tiancai/p/14849989.html
Copyright © 2011-2022 走看看