主要做两个事,从properties配置文件中读取信息,通过反射创建对象

思路主要有两种,遍历得到的属性集合,然后设置类的属性

遍历类的属性集合,从配置文件中读取(不推荐,因为类的属性有多样化,会报错)

try {
Properties prop = new Properties();
prop.load(new FileInputStream(
"F:\\user.properties"));
Class class1 = Class.forName("com.zlkj.config.User1");
Object newInstance = class1.newInstance();
//这样就可以拿到本类中公有和私有方法
Field[] fields = class1.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
field.set(newInstance, prop.getProperty(field.getName()));
} System.out.println(newInstance.toString());
} catch (Exception e) {
e.printStackTrace();
}

以上方法要注意几点:

  • 注入的类的属性要是String类,如果是其他类,要调用相应的方法,不然会报错;
  • 有时候可能要拿父类的属性,调用 getSuperClass().getDeclaredFields()

本文由博客一文多发平台 OpenWrite 发布!

从properties中读取配置创建对象的更多相关文章

  1. CAT客户端如何从Apollo中读取配置?

    运行环境 以下就是这个示例的运行环境,如果版本号不一样,区别也应该不会很大,可以根据实际情况做相应调整. JDK 8 spring boot 2.0.7.RELEASE cat-client 3.0. ...

  2. springboot读取application.properties中自定义配置

    假设在application-xxx.properties中配置 user.name=yuhk 一.在Controller中读取 @Value("{$user.name}") pr ...

  3. JavaWEB中读取配置信息

    第一种方法是使用java.io和java.util包,缺点是路径的概念要清晰, 例子: Properties prop = new Properties(); InputStream in = get ...

  4. 如何快速获取properties中的配置属性值

    本文为博主原创,未经博主允许,不得转载: 在项目中,经常需要将一些配置的常量信息放到properties文件中,这样在项目的配置变动的时候,只需要修改配置文件中 对应的配置常量即可. 在项目应用中,如 ...

  5. IntellJ IDEA2017 springboot2.0.2中读取配置

    IDEA 路径 src\main\resources\application.properties 配置文件名称为 application.properties 默认的位置在classpath根目录下 ...

  6. .netcore webapi 在startup中读取配置字符串

    参考微软官方说明:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration 具体为: 读取方法见下图中标红的格式, ...

  7. Spring Boot—07应用application.properties中的配置

    方法1 @Value("${test.msg}") private String msg; 方法2 @Autowired private Environment env; Stri ...

  8. properties文件读取配置信息

    public static void main(String[] args){ String printerName=""; String path = "C:\\Bar ...

  9. 从SuperSocket的App.config中读取配置,并修改保存,再重启服务

    string XmlPath = System.Windows.Forms.Application.ExecutablePath + ".config"; XmlDocument ...

随机推荐

  1. 复习sed实例操作

    第6周复习课(5月2日) 课程内容: 复习 扩展1.打印某行到某行之间的内容http://ask.apelearn.com/question/5592.sed转换大小写 http://ask.apel ...

  2. c# 窗体开发1 基本控件的使用

      namespace firstly #当前命名空间控件 { public partial class Form1 : Form { public Form1() #第一个窗体 { Initiali ...

  3. 升级Xcode7&iOS9后,出现NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -980X)

    在info.plist里面添加如下内容即可: <key>NSAppTransportSecurity</key> <dict> <key>NSAllow ...

  4. Python-车牌识别

    一.车牌识别系统的用途与技术车牌识别系统(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用.车牌识别在高速公路车辆管理 ...

  5. js之观察者模式和发布订阅模式区别

    观察者模式(Observer) 观察者模式指的是一个对象(Subject)维持一系列依赖于它的对象(Observer),当有关状态发生变更时 Subject 对象则通知一系列 Observer 对象进 ...

  6. Android Application 详细介绍

    一.先看看文档里怎么说 Base class for those who need to maintain global application state. You can provide your ...

  7. JsonModel的使用

    本人最近在开发一款医疗类的APP 发现接口返回的数据很复杂 手动解析的话对新手来说就是一场灾难 在分解成所需要的model类型时工作量非常的大,于是从网上查阅相关资料,发现JsonModel这个第三方 ...

  8. git 使用详解(6)—— 3种撤消操作

    接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些操作并不总是可以撤消的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果. 修改最后一次提交 git commit --amend 有 ...

  9. [TimLinux] django model关于QuerySet

    1. 获取执行过的sql命令 from django.db import connections connections['default'].queries 2. 获取QuerySet将执行的sql ...

  10. POJ2528 Mayor's poster

    The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...