zoukankan      html  css  js  c++  java
  • 关于ClassLoader的使用

    了解ClassLoader:

    这里写图片描述

        /*
         * 了解类的加载器:ClassLoader
         * 
         */
    @Test
        public void testClassLoader() {
            // 获取到系统类加载器,加载用户自己创建类
            ClassLoader loader = ClassLoader.getSystemClassLoader();
            System.out.println(loader);
    
            // 获取到扩展类加载器,加载D:jdk1.6.0_45jrelibext目录下的jar包
            ClassLoader loader2 = loader.getParent();
            System.out.println(loader2);
    
            // 引导类加载器,获取不到
            ClassLoader loader3 = loader2.getParent();
            System.out.println(loader3);
    
        }
    
        // 举例:对于自定义类,是使用系统类加载器加载
            String className = "com.atguigu.java.Person";
            ClassLoader classLoader = Class.forName(className).getClassLoader();
            System.out.println(classLoader);
    
            className = "java.lang.String";
            classLoader = Class.forName(className).getClassLoader();
            System.out.println(classLoader);

    关于ClassLoader加载器的一个使用,需要掌握
    包结构:
    这里写图片描述

    ================================
    jdbc.properties:

    jdbc.user=root
    jdbc.password=root
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/jdbc1
    
    
    #jdbc.user=scott
    #jdbc.password=tiger
    #jdbc.driverClass=oracle.jdbc.driver.OracleDriver
    #jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:ORCL001
        /*
         * 关于ClassLoader加载器的一个使用,需要掌握
         */
        @Test
        public void testClassLoader1() throws IOException {
    
            // 方式一:读取当前工程下的配置文件jdbc.properties
            Properties properties = new Properties();
            FileInputStream inStream = new FileInputStream(new File(
                    "jdbc.properties"));
            properties.load(inStream);
    
            String user = properties.getProperty("jdbc.user");
            String password = properties.getProperty("jdbc.password");
            String driverClass = properties.getProperty("jdbc.driverClass");
            String url = properties.getProperty("jdbc.jdbcUrl");
            System.out.println("user=" + user + "
    password=" + password
                    + "
    driverClass=" + driverClass + "
    url" + url);
            System.out.println("============================");
    =====================================================
            // 方式二:读取src目录下的配置文件
            Properties properties2 = new Properties();
            // InputStream inputStream =
            // ReflectTest.class.getClassLoader().getResourceAsStream("jdbc1.properties");
            InputStream inputStream = this.getClass().getClassLoader()
                    .getResourceAsStream("jdbc1.properties");
            properties2.load(inputStream);
    
            String user2 = properties2.getProperty("jdbc.user");
            String password2 = properties2.getProperty("jdbc.password");
            String driverClass2 = properties2.getProperty("jdbc.driverClass");
            String url2 = properties2.getProperty("jdbc.jdbcUrl");
            System.out.println("user=" + user2 + "
    password=" + password2
                    + "
    driverClass=" + driverClass2 + "
    url" + url2);
            System.out.println("============================");
    ===============================================
            // 方式三:读包目录下的配置文件
            Properties properties3 = new Properties();
    //      InputStream inputStream2 = this.getClass().getClassLoader()
    //              .getResourceAsStream("com/atguigu/java/jdbc2.properties");
            InputStream inputStream2 = this.getClass().getClassLoader()
                    .getResourceAsStream("com\atguigu\java\jdbc2.properties");
            properties3.load(inputStream2);
    
            String user3 = properties3.getProperty("jdbc.user");
            String password3 = properties3.getProperty("jdbc.password");
            String driverClass3 = properties3.getProperty("jdbc.driverClass");
            String url3 = properties3.getProperty("jdbc.jdbcUrl");
            System.out.println("user=" + user3 + "
    password=" + password3
                    + "
    driverClass=" + driverClass3 + "
    url" + url3);
        }
    
  • 相关阅读:
    746. 使用最小花费爬楼梯(动态规划题)
    91.解码方法(动态规划)
    198/213 打家劫舍(动态规划)
    5. 最长回文子串 (从今天开始刷动态规划50题)
    POJ 2142
    HDU 4686
    HDU 4767
    HDU 1757
    POJ 3613
    HDU 2157
  • 原文地址:https://www.cnblogs.com/lisingshen/p/7499734.html
Copyright © 2011-2022 走看看