Properties Configuration

    Configure Dubbo with properties

    If your application is simple enough, say, you do not need multi-registries or multi-protocols, and you want to share configuration among Spring containers. You can use dubbo.properties as default configuration.

    Dubbo will load dubbo.properties under the root of classpath automatically, you can also specify the path for loading this file by using JVM parameter: -Ddubbo.properties.file=xxx.properties.

    Mapping Rules

    Combine the tag name and attribute name of the XML tag, use . to split. One property per line.

    • dubbo.application.name=foo equals to <dubbo:application name="foo" />
    • dubbo.registry.address=10.20.153.10:9090 equals to <dubbo:registry address="10.20.153.10:9090" />

    If you have more than one tags in a XML configuration, you can use the id value to distinguish. If you don’t specify a id, ti will applied to all tags.

    • dubbo.protocol.rmi.port=1099 equals to <dubbo:protocol id="rmi" name="rmi" port="1099" />
    • dubbo.registry.china.address=10.20.153.10:9090 equals to <dubbo:registry id="china" address="10.20.153.10:9090" />

    Here is a typical dubbo.properties demo configuration:

    dubbo.application.name=foo
    dubbo.application.owner=bar
    dubbo.registry.address=10.20.153.10:9090
    

    Overrides and Priorities

    properties-override

    Priorities from high to low:

    • JVM -D parameters, you can easily override configuration when deploying or starting applications, e.g., change the port of dubbo protocol.

    • XML, the properties present in XML will override that in dubbo.properties.

    • Properties, the default value, only works when it is not configured with XML or JVM.

    1: If more than one dubbo.properties under classpath, say, two jars contains dubbo.properties separately, Dubbo will arbitarily choose one to to load, and log Error info.
    2: If id not configured on protocol, will use name property as default