关键工具类:

    1. import org.apache.commons.configuration.CompositeConfiguration;
    2. import org.apache.commons.configuration.ConfigurationException;
    3. import org.apache.commons.configuration.PropertiesConfiguration;   //</horsepower>
    4. </engine-config>

    2.读取properties文件

  1. import org.apache.commons.configuration.Configuration;
  2. import org.apache.commons.configuration.PropertiesConfiguration;
  3. public class PropertiesConfigurationExample {
  4. public static void main(String[] args) throws Exception {
  5. Configuration config = new PropertiesConfiguration(
  6. "com/discursive/jccook/configuration/global.properties" );
  7. System.out.println( "Speed: " + config.getFloat("speed"));
  8. System.out.println( "Names: " + config.getString("name"));
  9. }
  10. }

  1. global.properties
  2. threads.maximum=50
  3. threads.minimum=20
  4. timeout=15.52
  5. interactive=true
  6. color=red
  7. speed=50
  8. name=Default User
  9. email=default@email.com
  10. region=Earth

3.当有多个配置文件时,就利用ConfigurationFactory对象来访问多个不同的配置资源

  1. import java.net.URL;
  2. import java.util.List;
  3. import org.apache.commons.configuration.Configuration;
  4. import org.apache.commons.configuration.ConfigurationFactory;
  5. public class PropertiesXmlConfigurationExample {
  6. public static void main(String[] args) throws Exception {
  7. PropertiesXmlConfigurationExample example = new PropertiesXmlConfigurationExample();
  8. ConfigurationFactory factory = new ConfigurationFactory();
  9. URL configURL = example.getClass().getResource("additional-xml-configuration.xml");
  10. factory.setConfigurationURL( configURL );
  11. Configuration config = factory.getConfiguration();
  12. List startCriteria = config.getList("start-criteria.criteria");
  13. System.out.println( "Start Criteria: " + startCriteria );
  14. int horsepower = config.getInt("horsepower");
  15. System.out.println( "Horsepower: " + horsepower );
  16. }
  17. }

  1. additional-xml-configuration.xml
  2. <?xml version="1.0" encoding="ISO-8859-1" ?>
  3. <configuration>
  4. <properties fileName="global.properties"/>
  5. <xml fileName="global.xml"/>
  6. </configuration>

4.CompositeConfiguration,手动加上两个配置文件

  1. import org.apache.commons.configuration.CompositeConfiguration;
  2. import org.apache.commons.configuration.ConfigurationException;
  3. import org.apache.commons.configuration.PropertiesConfiguration;
  4. import org.apache.commons.configuration.XMLConfiguration;
  5. public class Test {
  6. /**
  7. * @param args
  8. * @throws ConfigurationException
  9. */
  10. public static void main(String[] args) throws ConfigurationException {
  11. // TODO Auto-generated method stub
  12. CompositeConfiguration config = new CompositeConfiguration();
  13. config.addConfiguration(new PropertiesConfiguration(
  14. "com/discursive/jccook/configuration/global.properties" ));
  15. config.addConfiguration( new XMLConfiguration
  16. ("com/discursive/jccook/configuration/global.xml"));
  17. List startCriteria = config.getList("start-criteria.criteria");
  18. int horsepower = config.getInt("horsepower");
  19. System.out.println( "Start Criteria: " + startCriteria );
  20. System.out.println(horsepower);
  21. System.out.println( "Speed: " + config.getFloat("speed"));
  22. System.out.println( "Names: " + config.getString("name"));
  23. }
  24. }