通过反射读取properties配置文件信息
实体类jdbc
package 反射.com.zhao.JDBC;
public class Jdbc {
private String username;
private String password;
private String url;
private String driver;
private String log;
public Jdbc() {
}
public Jdbc(String username, String password, String url, String driver) {
this.username = username;
this.password = password;
this.url = url;
this.driver = driver;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
@Override
public String toString() {
return "Jdbc{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", url='" + url + '\'' +
", driver='" + driver + '\'' +
", log='" + log + '\'' +
'}';
}
}
配置文件jdbc.properties
#数据库连接配置
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/schema?charcaterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 随意自定义配置
spring.log= xxx.xxx
测试类JdbcTest
package 反射.com.zhao.JDBC;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.Properties;
public class JdbcTest {
public static void main(String[] args) throws IOException, IllegalAccessException, InstantiationException, NoSuchFieldException {
Class<Jdbc> jdbcClass = Jdbc.class;
InputStream in = jdbcClass.getResourceAsStream("jdbc.properties");
Properties pro = new Properties();
pro.load(in);
Jdbc jdbcT = jdbcClass.newInstance();
jdbcT.setUsername(pro.getProperty("spring.datasource.username"));
jdbcT.setPassword(pro.getProperty("spring.datasource.password"));
jdbcT.setUrl(pro.getProperty("spring.datasource.url"));
jdbcT.setDriver(pro.getProperty("spring.datasource.driver-class-name"));
Field log = jdbcClass.getDeclaredField("log");
log.setAccessible(true);
log.set(jdbcT,pro.getProperty("spring.log"));
System.out.println(jdbcT.toString());
}
}
Jdbc{username='root', password='123456', url='jdbc:mysql://localhost:3306/schema?charcaterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false', driver='com.mysql.cj.jdbc.Driver', log='xxx.xxx'}