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);
        }
    
  • 相关阅读:
    Redis学习笔记
    sysctl命令修改内核参数
    Spring Boot学习笔记
    抽象和接口
    FTP主动模式与被动模式
    JVM参数调优
    JVM性能调优工具
    性能调优工具
    Feign Hystrix Tomcat参数配置
    Zuul学习笔记
  • 原文地址:https://www.cnblogs.com/lisingshen/p/7499734.html
Copyright © 2011-2022 走看看