在java中配置apollo加载namespace,有3种方法
- xml加载
@EnableApolloConfig要和@Configuration一起使用
@Configuration
@EnableApolloConfig(value = {"application", "database"})
public class ApolloConfig implements ApplicationContextAware {
}
- springboot 通过配置文件的方式指定key apollo.bootstrap.namespaces
apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=application,database
现在很少有使用xml进行配置的项目了。用的较多的是第二、第三种。但两者最好不要同时一起用。因为apollo加载namespaces是按照配置的顺序来的,如果两种方式都配置了几个相同的namespace,但顺序不一样,会带来一些意想不到的问题。我试验后,发现注解方式和配置文件方式都存在的话,配置文件方式先加载,所以namespace的顺序以配置文件中为准。
如果对某一个key,它同时存在两个namespace,先加载的值会覆盖后面的值。