Annotation Configuration

    Configure Dubbo with annotation

    Requires2.6.3 or higher, click here to view the complete sample

    Provider Side

    k

    @Service annotation for exporting

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

    Add application sharing configuration

    # 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 scan path

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

    Consumer Side

    @Reference annotation for reference

    @Component("annotationAction")
    public class AnnotationAction {
    
        @Reference
        private AnnotationService annotationService;
        
        public String doSayHello(String name) {
            return annotationService.sayHello(name);
        }
    }
    

    Add application sharing configuration

    # dubbo-consumer.properties
    dubbo.application.name=annotation-consumer
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    dubbo.consumer.timeout=3000
    

    Spring scan path

    @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 {
    
    }
    

    Invoke service

    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");
    }