dubbo学习(四)配置dubbo 注解方式配置

provider

service注解暴露服务

@Service
public class AnnotationServiceImpl implements AnnotationService {
    @Override
    public String sayHello(String name) {
        return "annotation: hello, " + name;
    }
}

PS:@Service注解很容易用错,目前有两个包有@Service注解:

com.alibaba.dubbo.config.annotation.Service:用于标注对外暴露的dubbo接口实现类。

org.springframework.stereotype.Service:用于标注根据业务块分离的Service的实现类,对应的是业务层(如一个dubbo方法可能调用多个业务块的service,这些service的实现类就用Spring的注解)。

增加应用共享配置

# 配置生产者连接的注册中心的信息
# dubbo-provider.properties
dubbo.application.name=annotation-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

指定Spring扫描路径

@Configuration
@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
static public class ProviderConfiguration {

}

PS:@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,

  这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用

  于构建bean定义,初始化Spring容器。

  @EnableDubbo开启注解Dubbo功能 ,scanBasePackages属性配置包扫描的路径,用于扫描并注册bean

@PropertySource注解的目的是加载指定的属性文件,将properties配置文件中的值存储到Spring的 Environment中,Environment接口提供方法去读取配置文件中的值。

consumer

Reference注解引用服务

@Component("annotationAction")
public class AnnotationAction {

    @Reference
    private AnnotationService annotationService;

    public String doSayHello(String name) {
        return annotationService.sayHello(name);
    }
} 

PS:@Component(把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>) 泛指各种组件,

  就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

  例:<context:component-scan base-package=”com.*”> 
  上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。

  @Reference与@Autowired、@Resource注解功能类似,用于依赖注入,一般注入的是分布式的远程服务的对象,需要dubbo配置使用

增加应用共享配置

# 配置消费者连接的注册中心的信息
# dubbo-consumer.properties
dubbo.application.name=annotation-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.consumer.timeout=3000

指定Spring扫描路径

@Configuration
@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.action")
@PropertySource("classpath:/spring/dubbo-consumer.properties")
@ComponentScan(value = {"org.apache.dubbo.samples.simple.annotation.action"})
static public class ConsumerConfiguration {

}

PS:@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。

调用服务

public static void main(String[] args) throws Exception {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConsumerConfiguration.class);
    context.start();
    final AnnotationAction annotationAction = (AnnotationAction) context.getBean("annotationAction");
    String hello = annotationAction.doSayHello("world");
}

原文地址:https://www.cnblogs.com/riches/p/11195184.html

时间: 2024-10-10 17:15:30

dubbo学习(四)配置dubbo 注解方式配置的相关文章

跟着刚哥学习Spring框架--通过注解方式配置Bean(四)

组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Respository:标识持久层组件 3.@Service:标识业务层组件 4.@Controller:标识表现层组件 Spring 有默认的命名策略: 使用非限定类名, 第一个字母小写. 也可以在注解中通过 value 属性值标识组件的名称 当在组件类上使用了特定的注解之后, 还需要在 Spring 的配置文件

跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属

在Spring3 MVC中五步配置集成注解方式Hibernate3

最近在搞一个WEB项目,以前在公司做项目用的都是JPA做ORM持久层,这次这个项目是我自己接的,我决定改一下,用Hibernate3来做ORM持久层.于是我网上搜索了Hibernate3怎么配置集成到Spring3 MVC上,发现千奇百怪,而且很多都是不是基于注解方式配置,显然那些文字上面的配置方式已经跟如今的Hibernate3注解支持方式脱节了,于是我决定自己搞一把,首先说一下网上那些配置方式的不好的地方,很多文章都提到要jdbc.properties文件与Hibernate config文

Spring之AOP基本概念及通过注解方式配置AOP

为什么使用AOP 传统方法 AOP前前奏 首先考虑一个问题,假设我们要设计一个计算器,有如下两个需求: - 在程序运行期间追踪正在放生的活动 - 希望计算器只能处理正数的运算 通常我们会用如下代码进行实现: 定义一个接口: public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } 实现类(

atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o.....

atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o..... 1. 安装配置 1 1.1. 下载  dwr.jar 1M 1 1.2. 配置注解方式..web.xml 1 2. 查询页面 2 2.1. Class 配置SVS 2 2.2. 实体class配置@DataTransferObject  ,只使用这个走ok兰.. 3 2.3. 测试查看公布的方法 3 2.4. 导入到page页面 3 2.5. 使用在js黑头 4 3. 异常处理,使用java异常.. 4 4

SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP

AOP(Aspect Oriented Programming).是面向切面编程的技术.AOP基于IoC基础.是对OOP的故意补充. AOP之所以能得到广泛应用,主要是由于它将应用系统拆分分了2个部分:核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的切面Crosscutting enterprise concerns.比如,全部大中型应用都要涉及到的持久化管理(Persistent).事务管理(Transaction Management).权限管理(P

atitit.ajax bp dwr 3.的注解方式配置使用流程总结.....

atitit.ajax bp dwr 3.的注解方式配置使用流程总结..... 1. 下载  dwr.jar 1M 1 2. 配置注解方式..web.xml 1 3. Class 配置 2 4. 测试查看公布的方法 2 5. 导入到page页面 3 6. 使用在js黑头 3 7. #=====param sh requesst 3 8. Xxx is undefine 4 9. Warning: overloaded methods are not recommended 4 1. 下载  dw

spring 注解方式配置Bean

概要: 再classpath中扫描组件 组件扫描(component scanning):Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件 特定组件包括: @Component:基本注解,标示了一个受Spring管理的组件(可以混用,spring还无法识别具体是哪一层) @Respository:建议标识持久层组件(可以混用,spring还无法识别具体是哪一层) @Service:建议标识服务层(业务层)组件(可以混用,spring还无法识别具体是哪一层) @Con

注解方式配置Servlet(Servlet3.0)

注解方式配置Servlet(Servlet3.0) Servlet3.0 主页http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/ 1.简单的servlet配置 @WebServlet(”/myservlet”) @WebServlet(name=”MyServlet”, urlPatterns={"/myservlet", "/bar"}) xxx/myservlet就可用执行该

Spring事务配置方式(一) 注解方式配置

注解方式配置事务 引用自 http://www.cnblogs.com/younggun/archive/2013/07/16/3193800.html <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="d