• Dubbo基于注解方式的配置


    如果还不了解Dubbo是什么或者不知道怎么搭建的可以先看一下我的上一篇文章。

    首先我先来讲下提供者(也就是服务端)的配置,先上配置文件代码:

     
     
        
    	
    	
    
    	
    
    	
    	
    
    	
    	
    
    	
    	
    	
    		
    	
    	
     	
    	
     
    
    • 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

    下面这两句就是开启注解扫描的配置:

    	
    	
    	
     	
    	
    
    • 1
    • 2
    • 3
    • 4
    • 5

    package和base-package是要扫描的位置,这些配置的意思大部分都跟spring的配置差不多,这里就不多说了。

    接下来来看下我们Service中代码注解的使用:

    package com.dubbo.provide.user.service.impl;
    
    import org.springframework.stereotype.Component;
    
    import com.alibaba.dubbo.config.annotation.Service;
    import com.dubbo.provide.user.service.IUserService;
    
    
    /**
     * 
     * @author LiZhiXian
     * @version 1.0
     * @date 2015-9-12 下午4:44:21
     */
    @Component
    @Service
    public class UserService implements IUserService {
    
    	@Override
    	public String getUser() {
    		return "dubbo接口调用成功......";
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    其中@Component就是spring bean的注解,而@Service就是dubbo本身的注解,这两个注解合起来的意思就跟我们配置文件中先声明一个bean然后再声明接口暴露的意思是一样的。

    接下来看下消费者(也就是客户端)的配置:

    我这边使用的是springmvc框架,注意:这边接口的名称以及包路径,必须和提供者暴露的接口一致,可以直接将服务端的接口导出成jar,然后在客户端引入使用。

    平时加配置文件的习惯都是按不同的功能来配置的,但是刚试了一下将dubbo单独配置,发现在注解扫描的时候扫描不到,有可能是跟spring的注解扫描发生了冲突,

    最后我将dubbo的配置集成到了springMvc-servlet.xml配置中问题就解决了。

      
      
         
        
        
        
    	
    
    	
    	
    	
        
        
        
    	 
        
    	
    	
    	
    	
    	  
         
        
          
        
    
        
          
                  
                      
                         
                      
                  
         
        
          
          
    	       
    	       
    	 
           
    	  	    
    	     10737418240 
    	 
    
      
    
    • 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

    dubbo的配置我是加在了springMvc配置的最前面

    接下来看下我在controller中的运用

    package com.frame.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import com.alibaba.dubbo.config.annotation.Reference;
    import com.dubbo.provide.user.service.IUserService;
    
    /**
     * 
     * @author LiZhiXian
     * @version 1.0
     * @date 2015-9-16 上午8:54:55
     */
    @Controller
    @RequestMapping(value="/user/*")
    public class UserController {
    
    	@Reference
    	IUserService userService;//调用Dubbo暴露的接口
    
    	@RequestMapping(value="getUser.htm")
    	public @ResponseBody String getUser(){
    		return userService.getUser();
    	}
    }
    
    • 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

    这变就使用到了@Reference来注入服务端爆入的接口。

    由于还有其他事情要忙就先说到这里,如果有更好的建议欢迎各位读者留言,谢谢。

  • 相关阅读:
    微软出品自动化神器【Playwright+Java】系列(十)元素定位详解
    Matplotlib-cpp在linux中C++代码中调用画图
    C#数据库操作
    2022河南萌新联赛第(七)场:南阳理工学院 H-防风台
    【Linux】RPM包使用详解
    【C语言趣味教程】(6) 作用域:局部变量 | 全局变量 | 局部变量优先原则 | 利用大括号限制作用域 | 变量的生命周期
    LeetCode54螺旋矩阵、59螺旋矩阵II【灵活】
    Sklearn基础教程
    网络安全 - DNS劫持原理 + 实验
    以太坊学习笔记(五)DAPP 开发环境
  • 原文地址:https://blog.csdn.net/m0_67393413/article/details/126328091