场景说明
我们在配置项目的各种参数时可能存在多种形式的配置文件,项目启动时依次从配置文件中加载配置参数,主要有xml和properties两种,springboot项目中还可以使用yml格式的配置文件,yml跟properties效果一样,只不过参数书写格式不一样。除了这三种,还可以在程序启动脚本中携带参数,比如 java -Dxxx=xxx -jar demo.jar 如果同一个参数同时存在这几种配置中,哪个才有效呢?优先级如下:
优先级从高到低:
- JVM -D参数,当你部署或者启动应用时,它可以轻易地重写配置,比如,改变dubbo协议端口;
- XML文件, XML中的当前配置会重写dubbo.properties中的;
- properties文件,默认配置,仅仅作用于以上两者没有配置时。
1:如果在classpath下有超过一个dubbo.properties文件,比如,两个jar包都各自包含了dubbo.properties,dubbo将随机选择一个加载,并且打印错误日志。
2:如果 id没有在protocol中配置,将使用name作为默认属性。