org.apache.commons.configuration.Configuration 配置文件

混合各种配置资源
  经常你希望提供一套基本的配置信息,而且允许用户很容易的根据他们的特有的环境覆盖他们。
    
一种办法就是载你的代码中队默认值进行硬编码,并且提供一个配置文件来覆盖他们。  
    这是做法没有一点弹性。替换做法是:运用 CompositeConfiguration

CompositeConfiguration config = new CompositeConfiguration();

config.addConfiguration(new SystemConfiguration());

config.addConfiguration(new PropertiesConfiguration("application.properties"));
或者通过ConfigurationFactory这个类

    ConfigurationFactory factory = new ConfigurationFactory("config.xml");

    Configuration config = factory.getConfiguration();

   或者这么写 (两种写法默认配置文件是在class-path下面)

   ConfigurationFactory factory  = new ConfigurationFactory();

   URL url = ConfigurationUtil.class.getResources("config.xml")

   factory.setConfigurationURL(url);

   还有个写法可以定位到任何一个位置,它还可以接受带有“../”符号的相对路径,实现自由寻找资源的路径。

   configurationFactory = new ConfigurationFactory();

   写法一:
   //System.out.println(ConfigurationUtil.class.getClassLoader().getResources("../config.xml"));

   写法二:
   URL url = Thread.currentThread().getContextClassLoader().getResource("../config.xml");
   configurationFactory.setConfigurationURL(url);

   上面的config.xml是一个配置描述符。它定义了将要被装载的配置对象(资源文件),例如:

   <?xml version="1.0" encoding="ISO-8859-1" ?>

   <configuration>

   <system/>

   <properties fileName="application.properties"/>

   </configuration>
   读取属性文件的方式

   方法一:

   //com.rock.action是属性文件所在的包,application是属性文件名称,省略了.properties 

   ResourceBundle res = ResourceBundle.getBundle("com.rock.action.application");

   String app_ip = res.getString("xiaochuan").trim();

   System.out.println("app_ip="+app_ip); 

 

   方法二:

    public final class Config {
      private static Properties config;
      private Config() {
      };

      static {
        InputStream is = Config.class.getResourceAsStream("/upload-config.properties");       
        config = new Properties();
        try {
            config.load(is);
            System.out.println("config ="+config);
        } catch (Exception e) {
            e.printStackTrace();
        }
      }

      public static Properties getConfig() {
        return config;
      }
    }

   使用:Config.getConfig().getProperty(“user-path”);

引用\[1\]:在hadoop配置文件hadoop-env.sh配置 所有主机都操作 \[root@d-01 ~\]# grep -i hadoop_home /opt/hadoop-3.3.2/etc/hadoop/hadoop-env.sh export HADOOP_HOME=/opt/hadoop-3.3.2 JAVA_HOME配置 。 引用\[2\]:复制配置到其他主机 \[root@d-01 ~\]# scp -rp /opt/hadoop-3.3.2/etc/hadoop/core-site.xml d-02:/opt/hadoop-3.3.2/etc/hadoop/core-site.xml \[root@d-01 ~\]# scp -rp /opt/hadoop-3.3.2/etc/hadoop/core-site.xml d-03:/opt/hadoop-3.3.2/etc/hadoop/core-site.xml \[root@d-01 ~\]# scp -rp /opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml d-02:/opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml \[root@d-01 ~\]# scp -rp /opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml d-03:/opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml 必要操作 。 引用\[3\]:从d-01复制配置到其他节点 \[root@d-01 ~\]# scp /opt/hadoop-3.3.2/etc/hadoop/core-site.xml d-02:/opt/hadoop-3.3.2/etc/hadoop/ \[root@d-01 ~\]# scp /opt/hadoop-3.3.2/etc/hadoop/core-site.xml d-03:/opt/hadoop-3.3.2/etc/hadoop/ \[root@d-01 ~\]# scp /opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml d-02:/opt/hadoop-3.3.2/etc/hadoop/ \[root@d-01 ~\]# scp /opt/hadoop-3.3.2/etc/hadoop/hdfs-site.xml d-03:/opt/hadoop-3.3.2/etc/hadoop/ 启动journalnode进程 。 问题: org.apache.hadoop.shaded.org.apache.commons.configuration2.Configuration是什么? 回答: org.apache.hadoop.shaded.org.apache.commons.configuration2.ConfigurationApache Hadoop的一个类,它是用于处理配置文件的接口。它提供了一种方便的方式来读取和解析配置文件,以便在Hadoop集群进行配置管理。通过使用这个类,用户可以轻松地访问和修改Hadoop的各种配置参数,以满足其特定的需求。这个类的具体实现可以在Hadoop的相关文档找到。 #### 引用[.reference_title] - *1* *2* *3* [hadoop自动故障转移集群搭建详解](https://blog.csdn.net/weixin_40548182/article/details/124389518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值