一种调用属性配置文件中内容的方法和装置与流程

文档序号:12157352阅读:197来源:国知局
一种调用属性配置文件中内容的方法和装置与流程

本发明涉及项目开发技术领域,具体涉及一种调用属性配置文件中内容的方法和装置。



背景技术:

在写程序时有些参数是经常改变的,而这种改变不是预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库,那么IP、数据库名称、表名称、数据库主机等信息是我们本地的,要使得这个操作数据库的模块具有通用性,那么以上信息就不能写死在程序里。通常的做法是用配置文件来解决。

各种程序语言都有自己所支持的配置文件类型。在Java中,Java支持的是.properties文件的读写。.properties文件是项目开发尤其是Java Web项目中的一种属性配置文件,属性配置文件经常使用并且是特别重要的一类文件,主要用于配置Java Web项目中的配置信息。在项目开发时,很多配置参数需要从属性配置文件中读取,并且很多项目对于属性配置文件只有在使用时才进行解析。当有大量的方法使用配置参数时,就会导致程序频繁读属性配置文件,这严重降低了程序开发的效率,影响了项目开发进度。



技术实现要素:

本发明提供了一种调用属性配置文件中内容的方法和装置,以解决现有技术中程序频繁读取properties属性配置文件导致的程序开发效率低的问题。

为了达到上述目的,本发明的技术方案是这样实现的:

根据本发明的一个方面,提供了一种调用属性配置文件中内容的方法,该方法包括:

查找项目的项目路径,根据所述项目路径找到属性配置文件;

读取并解析所述属性配置文件,获得所述属性配置文件中的内容;

将得到的所述属性配置文件中的内容封装到预先定义的Map接口里;

通过调用所述Map接口,来调用所述属性配置文件中的内容。

可选地,所述查找项目的项目路径,根据所述项目路径找到属性配置文件包括:

在项目启动时,通过所述项目的初始化类获得初始化参数信息,根据所述初始化参数信息找到所述项目的项目路径,并根据所述项目路径找到属性配置文件。

可选地,所述读取并解析所述属性配置文件,获得所述属性配置文件中的内容包括:

通过文件读取类类读取并获得所述属性配置文件的字节输入流;

调用属性文件解析类来解析所述字节输入流得到所述属性配置文件中的内容。

可选地,在将得到的所述属性配置文件中的内容封装到预先定义的Map接口里之前,该方法还包括:

在所述项目的工具包下定义一个空的Map接口。

可选地,所述属性配置文件中的内容包括:所述项目中用到的参数;

所述参数按照键-值对的格式配置在所述属性配置文件中。

可选地,所述调用属性文件解析类来解析所述字节输入流得到所述属性配置文件中的内容包括:

调用属性配置文件解析类,通过所述属性配置文件解析类的输入流下载方法加载所述属性配置文件的字节输入流,并从所述字节输入流中读取键-值对;

通过所述属性配置文件解析类的键获取方法获取所述键-值对中的键,通过获取属性方法获取所述键对应的值。

可选地,所述将得到的所述属性配置文件中的内容封装到预先定义的Map接口里包括:

根据所述属性配置文件解析类解析得到的所述属性配置文件中的所有键值-对;

将所述属性配置文件中所有的键-值对一一赋值给所述预先定义的Map接口。

与上述调用属性配置文件中内容的方法相对应的,本发明还提供了一种调用属性配置文件中内容的装置,该装置包括:

获取单元,用于查找项目的项目路径,根据所述项目路径找到属性配置文件;

解析单元,用于读取并解析所述属性配置文件,获得所述属性配置文件中的内容;

封装单元,用于将得到的所述属性配置文件中的内容封装到预先定义的Map接口里;

调用单元,用于通过调用所述Map接口,来调用所述属性配置文件中的内容。

可选地,所述获取单元,具体用于在项目启动时,通过所述项目的初始化类获得初始化参数信息,根据所述初始化参数信息找到所述项目的项目路径,并根据所述项目路径找到属性配置文件。

可选地,所述解析单元包括:字节流读取单元和字节流解析单元;

所述字节流读取单元,用于通过文件读取类读取并获得所述属性配置文件的字节输入流;

所述字节流解析单元,用于调用属性配置文件解析类来解析所述字节输入流得到所述属性配置文件中的内容。

本发明的有益效果是:本发明的技术方案通过初始化项目时将属性配置文件的内容封装到Map接口里,后续使用时通过直接调用map接口来获取属性配置文件中的内容,因而只需项目初始化时封装一次属性配置文件,项目启动后就可以通过Map接口调取所用的属性配置文件中的内容,不需要二次解析属性配置文件等其它操作,使得程序的效率更高,达到性能高效利于 开发的效果。

附图说明

图1是本发明一个实施例的一种调用属性配置文件中内容的方法流程图;

图2是本发明一个实施例的属性配置文件中的内容的示意图;

图3是本发明一个实施例的一种调用属性配置文件中内容的装置的框图。

具体实施方式

本发明的核心思想是:针对现有技术项目开发(尤其是Java Web)过程中,程序调用属性配置文件内容时,需要频繁读取属性配置文件导致开发效率低的问题,通过项目初始化时将属性配置文件解析后封装到Map接口中,项目启动后,直接通过调用Map来获取属性配置文件中的内容,配置简单,使用方便,达到了性能高效利于开发的效果。

图1是本发明一个实施例的一种调用属性配置文件中内容的方法流程图,参见图1,本发明一个实施例的这种调用属性配置文件中内容的方法包括:

步骤S11,查找项目的项目路径,根据项目路径找到属性配置文件;

步骤S12,读取并解析所述属性配置文件,获得所述属性配置文件中的内容;

步骤S13,将得到的所述属性配置文件中的内容封装到预先定义的Map接口里;

步骤S14,通过调用所述Map接口,来调用所述属性配置文件中的内容。

由图1所示的步骤可知,本发明实施例的调用属性配置文件中内容的方法通过查找项目(尤其是Java Web)的项目路径,根据项目路径找到properties属性配置文件,获取properties属性配置文件中的内容,将properties属性配置文件中的内容封装到预先定义的Map接口中,避免了Java Web项目开发运行过程中,程序频繁读取解析properties属性配置文件导致的效率低、项目 开发进度慢的问题。

在本发明的一个实施例中,步骤S11,查找项目的项目路径,根据项目路径找到属性配置文件包括:

在项目启动时,通过所述项目的初始化类获得初始化参数信息,根据所述初始化参数信息找到所述项目的项目路径,并根据所述项目路径找到properties属性配置文件。

具体的,在Java Web项目启动时,运行Servlet类,通过所述Servlet类的ServletConfig对象获得当前Servlet类的初始化参数信息,根据所述初始化参数信息找到所述Java Web项目的项目路径,并根据所述项目路径找到properties属性配置文件。其中,初始化参数信息包括项目路径这一参数。

在本发明的一个实施例中,步骤S12,读取并解析所述属性配置文件,获得所述属性配置文件中的内容包括:

通过文件读取类读取并获得所述properties属性配置文件的字节输入流;

调用属性文件解析类来解析所述字节输入流得到所述properties属性配置文件中的内容。

具体实现时,通过文件读取类FileInputStream类读取并获得所述properties属性配置文件的字节输入流;

调用属性文件解析类properties类来解析所述字节输入流得到所述properties属性配置文件中的内容。

在本发明的一个实施例中,在将得到的所述properties属性配置文件中的内容封装到预先定义的Map接口里之前,该方法还包括:在所述项目的工具包下定义一个空的Map接口。例如在所述Java Web项目的Java.util工具包下定义一个空的Map接口。

在本发明的一个实施例中,properties属性配置文件中的内容包括:所述Java Web项目中用到的参数;

参数按照键-值对的格式配置在properties属性配置文件中。

在本发明的一个实施例中,所述调用属性文件解析类来解析所述字节输入流得到所述properties属性配置文件中的内容包括:

调用属性文件解析类即Properties类,通过所述Properties类的输入流下载方法即load(InputStream inStream)方法加载所述properties属性配置文件的字节输入流,并从所述字节输入流中读取键-值对;

通过所述Properties类的键获取方法即keySet()方法获取所述键-值对中的键,通过获取属性方法即getProperty(String key)方法获取所述键对应的值。

在本发明的一个实施例中,步骤S13,将得到的所述属性配置文件中的内容封装到预先定义的Map接口里包括:

根据所述属性配置文件解析类解析得到的所述属性配置文件中的所有键值-对;

将所述属性配置文件中所有的键-值对一一赋值给所述Map接口。

以下结合一个具体的实施例对本发明的这种调用属性配置文件中内容的方法进行展开说明。

在本实施例中,调用属性配置文件中内容的方法的详细实现过程包括步骤A至步骤G:

步骤A:在Java Web项目的系统配置文件web.xml中配置初始化加载类即StartUpServlet类;

当Java Web项目的Web服务器启动时,首先需要定制初始化参数具体的需要创建Servlet的一个实例对象StartUpServlet,即在系统配置文件web.xml中配置Servlet的名字以及Servlet的访问地址(一个定制URL),并配置Servlet-name子元素以及Servlet-class子元素,在Servlet-name子元素配置名称StartUpServlet,在Servlet-class子元素配置项目路径。StartUpServlet类在项目启动时被调用,通过调用getServletConfig().以及getInitParameter("param1")获得参数名param1对应的值。

步骤B:配置properties属性配置文件;

Java中的properties文件是一种属性配置文件,主要用于表达Java Web项目的配置信息,文件类型为.properties,格式为文本文件,properties文件的内容是“键-值”的格式,在properties配置文件中,可以用“#”来做注释,properties配置文件在Java编程中用到的地方很多,此文件方便维护,操作很方便。

本发明实施例在封装properties属性配置文件之前需要配置properties属性配置文件,properties属性配置文件的内容格式是“键-值”的格式,即每个参数配置成参数名和参数值一一对应的方式,其中参数名作为“键-值”对中的键,参数值作为“键-值”对中的键对应的值。参见图2,例如isSynchRes、isSynchOrg、isSynchUser是键,而这些键对应的值均为:false。因而对于系统中常用的参数都可以按“键-值”的格式配置在properties属性配置文件中,这样在封装后,可以方便的调用。

步骤C:定义一个空的静态Map接口;

Map为封装properties属性配置文件解析后的所有数据。在Java的util工具包中包含了Java中某些最常用的类,最常用的集合类之一是Map,Map提供了一种更常用的元素存储方法,Map提供键对象key到值对象value的映射,可以通过“键”查找“值”。一个Map接口中不能包含相同的key,每个key只能映射一个value。

如图2所示,properties文件中的isSynchRes、isSynchOrg等为Map的key值,false、true等数据为Map的value值。

步骤D:具体获取项目路径;

通过步骤A中的描述web.xml配置的初始化StartUpServlet类,调用初始化方法获取Java Web项目的项目路径,具体是在项目启动时,调用StartUpServlet类的ServletConfig对象的getInitParameter方法获取步骤A中配置的项目路径。其中,ServletConfig从一个Servlet类被实例化后,对任何客户端在任何时候的访问都有效,但仅对本Servlet类有效,一个Servlet的ServletConfig对象不能被另一个Servlet类访问。即ServletConfig对象与StartUpServlet类之间存在一一对应的关系。

具体的ServletConfig对象通过调用getInitParameter("syspath")获取的元素<init-param>配置的参数信息,在系统配置文件web.xml中,<servlet>元素内部使用<init-param>子元素来为Servlet配置初始化参数。参数syspath表示项目路径。

步骤E:获取properties属性配置文件;

根据步骤D获取的Java Web项目的项目路径,查询步骤B所配置的 properties属性配置文件的路径,找到properties属性配置文件。

步骤F:读取properties属性配置文件并封装成静态Map;

通过步骤E查到的properties属性配置文件,通过文件读取类即FileInputStream类读取properties文件获得properties文件的字节输入流,调用属性文件解析类即Properties类的load方法解析此字节输入流,从字节输入流中读取属性列表(即键-值对)。通过keySet()获取键-值对的key值,通过Properties类getProperty方法获取value值。通过步骤C中创建的空的Map封装key值与value值。

这里的FileInputStream类的作用是以流的形式读取properties属性配置文件,即读取properties文件,得到properties文件字节输入流。

这里的Properties类具体是指Java.util.Properties类,是对properties这种配置文件的映射,可以操作properties属性配置文件。针对key-value这种properties属性配置文件,用load方法就能直接映射成Map,properties类实现Map接口,它是用Map来存储key-value数据,通过key的方式来获取对应value。

用到的Properties类的方法包括:

1.load(InputStream inStream)

从字节输入流中读取属性列表(即键-值对)。通过对上述properties属性配置文件进行装载来获取该文件中的所有键-值对,以供getProperty(String key)来搜索。

2.getProperty(String key)

用指定的键在FileInputStream处理后获得的属性列表中搜索属性。也就是通过参数key,搜索得到key所对应的value。

步骤G,调用静态Map获取properties属性配置文件的内容;

当经过步骤F将properties属性配置文件的内容(所有的键-值对)封装完成后,项目运行时,可以直接通过调用Map接口来获取properties属性配置文件的内容,即直接通过Map接口key值获取value值,从而找到所用的参数。不需要频繁读取properties属性配置文件,不需要再次进行解析,因而可以大大提高程序的效率,加快项目开发的进度,节省时间。

由上可知,本发明一个实施例的调用属性配置文件中内容的方法只需在项目初始化封装一次properties文件(即将properties配置文件封装到Map接口中),后续就可以通过直接通过Map调取所要properties配置文件中的所有参数,不需要重新解析properties文件,使得程序的效率更高。

图3是本发明一个实施例的一种调用属性配置文件中内容的装置的框图,参见图3,本实施例的这种调用属性配置文件中内容的装置300包括:

获取单元310,用于查找项目的项目路径,根据所述项目路径找到属性配置文件;

解析单元320,用于读取并解析所述属性配置文件,获得所述属性配置文件中的内容;

封装单元330,将得到的所述属性配置文件中的内容封装到预先定义的Map接口里;

调用单元340,通过调用所述Map接口,来调用所述属性配置文件中的内容。

在本实施例中,获取单元310,具体用于在项目启动时,通过所述项目的初始化类获得初始化参数信息,根据所述初始化参数信息找到所述项目的项目路径,并根据所述项目路径找到属性配置文件。

具体的,在Java Web项目启动时,运行Servlet类,通过所述Servlet类的ServletConfig对象获得当前Servlet类的初始化参数信息,根据所述初始化参数信息找到所述Java Web项目的项目路径,并根据所述项目路径找到properties属性配置文件。

在本实施例中,解析单元320,具体用于通过文件读取类读取并获得所述属性配置文件的字节输入流;

调用属性文件解析类来解析所述字节输入流得到所述属性配置文件中的内容。

具体的,通过FileInputStream类读取并获得所述properties属性配置文件的字节输入流;

调用properties类来解析所述字节输入流得到所述properties属性配置文 件中的内容。

在本实施例中,该装置还包括:

Map接口定义单元,用于在项目的工具包下定义一个空的Map接口。即在所述Java Web项目的Java.util工具包下定义一个空的Map接口。

在本实施例中,properties属性配置文件中的内容包括:Java Web项目中用到的参数;

参数按照键-值对的格式配置在properties属性配置文件中。

在本实施例中,解析单元320包括:字节流读取单元和字节流解析单元;

所述字节流读取单元,用于通过文件读取类读取并获得所述属性配置文件的字节输入流;

所述字节流解析单元,用于调用属性配置文件解析类来解析所述字节输入流得到所述属性配置文件中的内容。

具体的,通过所述Properties类的load(InputStream inStream)方法加载所述properties属性配置文件的字节输入流,并从所述字节输入流中读取键-值对;通过所述Properties类的keySet()方法获取所述键-值对中的键,通过getProperty(String key)方法获取所述键对应的值。

在本实施例中,封装单元330具体用于,将解析得到的属性配置文件中所有的键-值对一一赋值给Map接口。

需要说明的是,本发明实施例的这种调用属性配置文件中内容的装置是和前述的调用属性配置文件中内容的方法相对应的,因而本实施例中调用属性配置文件中内容的装置的工作过程可以参见调用属性配置文件中内容的方法部分的相关具体说明,在此不再赘述。

综上所述,本发明实施例的这种调用属性配置文件中内容的方法和装置,通过初始化Java Web项目时将properties属性配置文件的内容封装到Map接口里,后续使用时通过直接调用map接口来获取properties属性配置文件中的内容,只需初始化时封装一次properties属性配置文件,项目启动后就可以通过Map接口调取所用的properties文件中的内容,不需要二次解析properties文件等其它操作,使得程序的效率更高,并且配置实现简单、使用方便,达 到性能高效,加快开发进度节省时间的有益效果。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1