{"id":13536799,"url":"https://github.com/apache/dubbo-spring-boot-project","last_synced_at":"2025-05-14T07:09:51.410Z","repository":{"id":28302444,"uuid":"117978265","full_name":"apache/dubbo-spring-boot-project","owner":"apache","description":"Spring Boot Project for Apache Dubbo","archived":false,"fork":false,"pushed_at":"2023-01-25T00:11:57.000Z","size":1557,"stargazers_count":5409,"open_issues_count":43,"forks_count":1876,"subscribers_count":352,"default_branch":"master","last_synced_at":"2025-05-10T17:16:25.769Z","etag":null,"topics":["dubbo"],"latest_commit_sha":null,"homepage":"https://dubbo.apache.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-18T12:10:50.000Z","updated_at":"2025-04-29T15:51:49.000Z","dependencies_parsed_at":"2023-02-14T03:03:39.469Z","dependency_job_id":null,"html_url":"https://github.com/apache/dubbo-spring-boot-project","commit_stats":null,"previous_names":["apache/incubator-dubbo-spring-boot-project"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fdubbo-spring-boot-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fdubbo-spring-boot-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fdubbo-spring-boot-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fdubbo-spring-boot-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/dubbo-spring-boot-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254046020,"owners_count":22005517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dubbo"],"created_at":"2024-08-01T09:00:49.743Z","updated_at":"2025-05-14T07:09:51.370Z","avatar_url":"https://github.com/apache.png","language":"Java","funding_links":[],"categories":["3. dubbo extensions and tools"],"sub_categories":["spring-boot-starter-dubbo"],"readme":"# Apache Dubbo Spring Boot Project \n\n## This repo has been archived. All of the implements have been moved to [apache/dubbo](https://github.com/apache/dubbo).\n\n[![Build Status](https://travis-ci.org/apache/dubbo-spring-boot-project.svg?branch=master)](https://travis-ci.org/apache/dubbo-spring-boot-project) \n[![codecov](https://codecov.io/gh/apache/dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-spring-boot-project)\n![license](https://img.shields.io/github/license/apache/dubbo-spring-boot-project.svg)\n\n[Apache Dubbo](https://github.com/apache/dubbo) Spring Boot Project makes it easy to create [Spring Boot](https://github.com/spring-projects/spring-boot/) application using Dubbo as RPC Framework. What's more, it also provides:\n* [auto-configure features](dubbo-spring-boot-autoconfigure) (e.g., annotation-driven, auto configuration, externalized configuration).\n* [production-ready features](dubbo-spring-boot-actuator) (e.g., security, health checks, externalized configuration).\n\n\u003e Apache Dubbo  |ˈdʌbəʊ| is a high-performance, light weight, java based RPC framework. Dubbo offers three key functionalities, which include interface based remote call, fault tolerance \u0026 load balancing, and automatic service registration \u0026 discovery.\n\n## [中文说明](README_CN.md)\n\n\n## Released version\n\nYou can introduce the latest `dubbo-spring-boot-starter` to your project by adding the following dependency to your pom.xml\n```xml\n\u003cproperties\u003e\n    \u003cspring-boot.version\u003e2.3.0.RELEASE\u003c/spring-boot.version\u003e\n    \u003cdubbo.version\u003e2.7.8\u003c/dubbo.version\u003e\n\u003c/properties\u003e\n    \n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n        \u003c!-- Spring Boot --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n            \u003cartifactId\u003espring-boot-dependencies\u003c/artifactId\u003e\n            \u003cversion\u003e${spring-boot.version}\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n\n        \u003c!-- Apache Dubbo  --\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.apache.dubbo\u003c/groupId\u003e\n            \u003cartifactId\u003edubbo-dependencies-bom\u003c/artifactId\u003e\n            \u003cversion\u003e${dubbo.version}\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n      \n    \u003c/dependencies\u003e\n\u003c/dependencyManagement\u003e\n\n\u003cdependencies\u003e\n    \u003c!-- Dubbo Spring Boot Starter --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.apache.dubbo\u003c/groupId\u003e\n        \u003cartifactId\u003edubbo-spring-boot-starter\u003c/artifactId\u003e\n        \u003cversion\u003e2.7.8\u003c/version\u003e\n    \u003c/dependency\u003e    \n\u003c/dependencies\u003e\n```\n\nIf your project failed to resolve the dependency, try to add the following repository:\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003eapache.snapshots.https\u003c/id\u003e\n        \u003cname\u003eApache Development Snapshot Repository\u003c/name\u003e\n        \u003curl\u003ehttps://repository.apache.org/content/repositories/snapshots\u003c/url\u003e\n        \u003creleases\u003e\n            \u003cenabled\u003efalse\u003c/enabled\u003e\n        \u003c/releases\u003e\n        \u003csnapshots\u003e\n            \u003cenabled\u003etrue\u003c/enabled\u003e\n        \u003c/snapshots\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n\n### Legacy Versions\n\nIf you still use the legacy Dubbo whose version is less than 2.7.0, please use the following Spring Boot starters:\n\n| Dubbo Spring Boot | Dubbo  | Spring Boot |\n| ----------------- | ------ | ----------- |\n| [0.2.1.RELEASE](https://github.com/apache/dubbo-spring-boot-project/tree/0.2.x)     | 2.6.5+ | 2.x         |\n| [0.1.2.RELEASE](https://github.com/apache/dubbo-spring-boot-project/tree/0.1.x)     | 2.6.5+ | 1.x         |\n\n\n\n### Build from Source\n\nIf you'd like to attempt to experience the latest features, you also can build from the source code as follow:\n\n1. Maven install current project in your local repository.\n\u003e Maven install = `mvn install`\n\n\n\n\n## Getting Started\n\nIf you don't know about Dubbo, please take a few minutes to learn http://dubbo.apache.org/. After that  you could dive deep into dubbo [user guide](http://dubbo.apache.org/en-us/docs/user/quick-start.html).\n\nUsually, There are two usage scenarios for Dubbo applications, one is Dubbo service(s) provider, another is Dubbo service(s) consumer, thus let's get a quick start on them.\n\nFirst of all, we suppose an interface as Dubbo RPC API that  a service provider exports and a service client consumes: \n\n```java\npublic interface DemoService {\n\n    String sayHello(String name);\n\n}\n```\n\n\n\n### Dubbo service(s) provider\n\n1. Service Provider implements `DemoService`\n\n    ```java\n    @DubboService(version = \"1.0.0\")\n    public class DefaultDemoService implements DemoService {\n    \n        /**\n         * The default value of ${dubbo.application.name} is ${spring.application.name}\n         */\n        @Value(\"${dubbo.application.name}\")\n        private String serviceName;\n    \n        public String sayHello(String name) {\n            return String.format(\"[%s] : Hello, %s\", serviceName, name);\n        }\n    }\n    ```\n\n2. Provides a bootstrap class\n\n    ```java\n    @EnableAutoConfiguration\n    public class DubboProviderDemo {\n\n        public static void main(String[] args) {\n            SpringApplication.run(DubboProviderDemo.class,args);\n        }\n    }\n    ```\n\n3. Configures the `application.properties`:\n\n    ```properties\n    # Spring boot application\n    spring.application.name=dubbo-auto-configuration-provider-demo\n    # Base packages to scan Dubbo Component: @org.apache.dubbo.config.annotation.Service\n    dubbo.scan.base-packages=org.apache.dubbo.spring.boot.sample.provider.service\n\n    # Dubbo Application\n    ## The default value of dubbo.application.name is ${spring.application.name}\n    ## dubbo.application.name=${spring.application.name}\n\n    # Dubbo Protocol\n    dubbo.protocol.name=dubbo\n    dubbo.protocol.port=12345\n\n    ## Dubbo Registry\n    dubbo.registry.address=N/A\n    ```\n\n\n\n### Dubbo service(s) consumer\n\n1. Service consumer also provides a bootstrap class to reference `DemoService`\n\n    ```java\n    @EnableAutoConfiguration\n    public class DubboAutoConfigurationConsumerBootstrap {\n    \n        private final Logger logger = LoggerFactory.getLogger(getClass());\n    \n        @DubboReference(version = \"1.0.0\", url = \"dubbo://127.0.0.1:12345\")\n        private DemoService demoService;\n    \n        public static void main(String[] args) {\n            SpringApplication.run(DubboAutoConfigurationConsumerBootstrap.class).close();\n        }\n    \n        @Bean\n        public ApplicationRunner runner() {\n            return args -\u003e {\n                logger.info(demoService.sayHello(\"mercyblitz\"));\n            };\n        }\n    }\n    ```\n\n2. configures `application.yml`\n\n    ```yaml\n    spring:\n      application:\n        name: dubbo-auto-configure-consumer-sample\n    ```\n\nIf `DubboProviderDemo` works well, please make sure `DubboProviderDemo` is started.\n\nMore details, please refer to [Samples](dubbo-spring-boot-samples).\n\n\n\n## Getting help\n\nHaving trouble with Dubbo Spring Boot? We’d like to help!\n\n- If you are upgrading, read the [release notes](https://github.com/apache/dubbo-spring-boot-project/releases) for upgrade instructions and \"new and noteworthy\" features.\n- Ask a question - You can subscribe [Dubbo User Mailling List](mailto:dubbo+subscribe@googlegroups.com).\n- Report bugs at [github.com/apache/dubbo-spring-boot-project/issues](https://github.com/apache/dubbo-spring-boot-project/issues).\n\n\n\n\n## Building from Source\n\nIf you want to try out the latest features of Dubbo Spring Boot, it can be easily built with the [maven wrapper](https://github.com/takari/maven-wrapper). Your JDK is 1.8 or above.\n\n```\n$ ./mvnw clean install\n```\n\n\n\n## Modules\n\nThere are some modules in Apache Dubbo Spring Boot Project, let's take a look at below overview:\n\n\n\n### [dubbo-spring-boot-parent](dubbo-spring-boot-parent)\n\nThe main usage of `dubbo-spring-boot-parent` is providing dependencies management for other modules.\n\n\n\n### [dubbo-spring-boot-autoconfigure](dubbo-spring-boot-autoconfigure)\n\n`dubbo-spring-boot-autoconfigure` uses Spring Boot's `@EnableAutoConfiguration` which helps core Dubbo's components to be auto-configured by `DubboAutoConfiguration`. It reduces code, eliminates XML configuration. \n\n\n\n### [dubbo-spring-boot-actuator](dubbo-spring-boot-actuator)\n\n`dubbo-spring-boot-actuator` provides production-ready features (e.g., [health checks](https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-actuator#health-checks), [endpoints](https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-actuator#endpoints), and [externalized configuration](https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-actuator#externalized-configuration)).\n\n\n\n### [dubbo-spring-boot-starter](dubbo-spring-boot-starter)\n\n`dubbo-spring-boot-starter` is a standard Spring Boot Starter, which contains [dubbo-spring-boot-autoconfigure](dubbo-spring-boot-autoconfigure) and [dubbo-spring-boot-actuator](dubbo-spring-boot-actuator). It will be imported into your application directly.\n\n\n\n### [dubbo-spring-boot-samples](dubbo-spring-boot-samples)\n\nThe samples project of Dubbo Spring Boot that includes:\n\n- [Auto-Configuaration Samples](dubbo-spring-boot-samples/auto-configure-samples)\n- [Externalized Configuration Samples](dubbo-spring-boot-samples/externalized-configuration-samples)\n- [Registry Zookeeper Samples](https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples/registry-samples/zookeeper-samples)\n- [Registry Nacos Samples](https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples/registry-samples/nacos-samples)\n\n\n\n## License\n\nApache Dubbo spring boot project is under the Apache 2.0 license. See the [LICENSE](https://github.com/apache/dubbo-spring-boot-project/blob/master/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fdubbo-spring-boot-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fdubbo-spring-boot-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fdubbo-spring-boot-project/lists"}