主要做两个事,从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. 在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程

    由于最近要在OpenCV3中使用SIFT和SURF特征提取,而自从OpenCV2升级到OpenCV3版本后,SIFT.SURF等这些算法都被移出opencv默认项目库,而被放到叫opencv_cont ...

  2. 学习AI之NLP后对预训练语言模型——心得体会总结

    一.学习NLP背景介绍:      从2019年4月份开始跟着华为云ModelArts实战营同学们一起进行了6期关于图像深度学习的学习,初步了解了关于图像标注.图像分类.物体检测,图像都目标物体检测等 ...

  3. 简单易懂的ftp脚本自动登录教程

    我在上上篇<nmon脚本--对Linux服务器的监控>的脚本中,使用了ftp的自动登录.结果有人询问,遂决定专门写一篇简单易懂的博客,来说明如何解决ftp的自动登录问题. 一.Window ...

  4. 【集合系列】- 深入浅出的分析 Set集合

    一.摘要 关于 Set 接口,在实际开发中,其实很少用到,但是如果你出去面试,它可能依然是一个绕不开的话题. 言归正传,废话咱们也不多说了,相信使用过 Set 集合类的朋友都知道,Set集合的特点主要 ...

  5. [TimLinux] python-ldap 介绍

    1. 接口 ldap: LDAP库接口 ldap.asyncsearch: 大量搜索结果数据采用流处理 ldap.controls: LDAPv3上层访问扩展控制 ldap.dn: LDAP dist ...

  6. R语言for循环

    基本语法:for (name in expr_1) expr_2 实例操作: 1.构造矩阵 x=array(,dim=c(,)) # 构造四阶矩阵 数值全为0 :){ :){ x[i,j]=/(i+j ...

  7. Docker系列-(1) 原理与基本操作

    Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...

  8. 虚拟链路(virtual-link)

    第四部分,虚拟链路配置.我们都知道,在ospf多区域中,所有与主干区域(ospf0)相连接的其他区域可以相互学系路由信息,但是,如果是非主干区域和非主干区域相连,就不能相互学习路由信息,这时候,我们可 ...

  9. Day 08 可变与不可变对象/列表与字典内置方法

    目录 可变对象与不可变对象 可变对象 不可变对象 列表的内置方法 字典内置方法 可变对象与不可变对象 可变对象 对象指向的内存中的值会改变,当更改这个变量的时候,还是指向原来内存中的值,并且在原来的内 ...

  10. RNN循环神经网络

    1.为什么还会有RNN? CNN(卷积神经网络)我们会发现, 他们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响, 比如简单的猫,狗,手写数字等单个物体的识别具有较好的效果. 但是, 对于 ...