1、pom依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency>
2、 Configuration读取的是xml文件,准备了一个test-site.xml文件
2.1 准备一个 test-site.xml 文件
<?xml version="1.0" encoding="UTF-8"?> <!--Autogenerated by Cloudera Manager--> <configuration> <property> <name>user</name> <value>root</value> </property> <property> <name>password</name> <value>1234</value> </property> </configuration>
2.2 Configuration 类的使用
import org.apache.hadoop.conf.Configuration; import org.junit.Test; import java.io.FileInputStream; import java.net.URL; import java.util.Properties; /** * User: shugj * Date: 2022-08-18 09:03 */ public class TestConf1{ // Configuration读取的是xml文件,准备了一个test-site.xml文件 @Test public void testConf() throws Exception { // 创建Configuration对象 Configuration conf = new Configuration(); // 加载xml文件 conf.addResource("test-site.xml"); // 通过xml中配置的name标签获取value值 String user = conf.get("user"); String password = conf.get("password"); // 输出 System.out.println("user:" + user); System.out.println("password:" + password); // 输出的是加载的哪些xml文件 System.out.println(conf); } }
3、Properties 读取的是键值对文件(testa.properties)
3.1、准备一个 testa.properties 文件
user=root password=54321
3.2、 Properties 类使用
import org.apache.hadoop.conf.Configuration; import org.junit.Test; import java.io.FileInputStream; import java.net.URL; import java.util.Properties; /** * User: shugj * Date: 2022-08-18 09:03 */ public class TestConf2 { // Properties 读取的是键值对文件(testa.properties) @Test public void testProperties() throws Exception { // 创建Properties对象 Properties properties = new Properties(); // 加载文本文件,文本格式 user=root // 这里我自己的绝对路径 properties.load( new FileInputStream("D:\\workspace2\\gmall-flink-20220812\\gmall-realtime\\src\\main\\resources\\testa.properties")); // 转换成HashMap的键值对格式 System.out.println(properties); // 通过键获取值 System.out.println("user:" + properties.getProperty("user")); System.out.println("password:" + properties.getProperty("password")); } }
4、总结一张思维导图方便回忆