关于ClassLoader的使用

来源:互联网 发布:风景线打印软件设置 编辑:程序博客网 时间:2024/06/06 00:39

了解ClassLoader:

这里写图片描述

    /*     * 了解类的加载器:ClassLoader     *      */@Test    public void testClassLoader() {        // 获取到系统类加载器,加载用户自己创建类        ClassLoader loader = ClassLoader.getSystemClassLoader();        System.out.println(loader);        // 获取到扩展类加载器,加载D:\jdk1.6.0_45\jre\lib\ext目录下的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=rootjdbc.password=rootjdbc.driverClass=com.mysql.jdbc.Driverjdbc.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 + "\npassword=" + password                + "\ndriverClass=" + driverClass + "\nurl" + 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 + "\npassword=" + password2                + "\ndriverClass=" + driverClass2 + "\nurl" + 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 + "\npassword=" + password3                + "\ndriverClass=" + driverClass3 + "\nurl" + url3);    }
原创粉丝点击