class.getClassLoader().loadClass的用法
时间: 2024-02-22 18:53:42 浏览: 137
class.getClassLoader().loadClass()是Java中用于动态加载类的方法。它的作用是通过类加载器加载指定的类,并返回对应的Class对象。
具体使用方法如下:
1. 首先,通过一个已知的类获取其对应的Class对象,例如:Class clazz = MyClass.class;
2. 然后,通过获取该类的类加载器,例如:ClassLoader classLoader = clazz.getClassLoader();
3. 最后,使用类加载器的loadClass()方法加载指定的类,例如:Class loadedClass = classLoader.loadClass("com.example.MyClass");
loadClass()方法的参数是要加载的类的全限定名(包名+类名)。它会根据类加载器的规则在类路径下查找并加载该类。如果找不到对应的类,则会抛出ClassNotFoundException异常。
需要注意的是,loadClass()方法返回的是一个Class对象,可以通过该对象进行反射操作,如创建实例、调用方法等。
相关问题
properties.load(DBUtil.class.getClassLoader().getResourceAsStream("mysql.properties"));jdbc通过类加载器加载properties,如何实现
这段代码实现了通过类加载器加载 `mysql.properties` 文件,并将其内容读入到 `Properties` 对象中。这通常用于在程序运行时从外部文件中读取配置信息。
具体实现步骤如下:
1. 使用 `DBUtil.class` 获取当前类的 `ClassLoader` 对象。
2. 调用 `getResourceAsStream()` 方法获取指定路径下的资源文件的输入流。
3. 将输入流传入 `Properties` 对象的 `load()` 方法中,即可将配置文件中的键值对读入到 `Properties` 对象中。
需要注意的是,这里的路径是相对于类加载器的根路径的相对路径。如果需要读取其他路径下的文件,可以使用绝对路径或者相对于当前类的路径。
import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import java.io.IOException;import java.io.InputStream;import java.util.Properties;@Configuration@PropertySource("classpath:config.properties")public class AppConfig { private static final Properties props = new Properties(); static { try (InputStream input = AppConfig.class.getClassLoader().getResourceAsStream("config.properties")) { props.load(input); } catch (IOException ex) { ex.printStackTrace(); // 加载配置文件失败,抛出异常 throw new RuntimeException("Failed to load config file"); } } public static String getAppId() { return props.getProperty("app.id"); } public static String getAppSecret() { return props.getProperty("app.secret"); } public static String getTemplateId() { return props.getProperty("template.id"); } public static void main(String[] args) { System.out.println("APP_ID: " + AppConfig.getAppId()); System.out.println("APP_SECRET: " + AppConfig.getAppSecret()); System.out.println("TEMPLATE_ID: " + AppConfig.getTemplateId()); }}简洁一点
这是一个Java配置文件,用于读取一个名为config.properties的属性文件,该文件位于类路径下。在静态代码块中,使用InputStream读取属性文件,并将其加载到Properties对象中。然后,提供了三个public静态方法,分别返回app.id、app.secret和template.id的值。在main方法中,打印了这些值。
阅读全文