如何在spring中读取properties配置文件里面的信息

如何在spring中读取properties配置文件里面的信息,第1张

一般来说。我们会将一些配置的信息放在。properties文件中。 然后使用${}将配置文件中的信息读取至spring的配置文件。 那么我们如何在spring读取properties文件呢。 1首先。我们要先在spring配置文件中。定义一个专门读取properties文件的类

您好,读取jar包内配置文件:
InputStream in = thisgetClass()getClassLoader()getResourceAsStream("/configfilenameproperties");
读取jar包外配置文件:
String filePath = SystemgetProperty("userdir") + "/conf/configfilenameproperties";
InputStream in = new BufferedInputStream(new FileInputStream(filePath));
另外,如果app中使用到log4jproperties文件,默认的存放路径是src/log4jproperties,同上面一样,我想把log4jproperties放在其他目录中,这样一来,在修改log4j配置文件的时候无需重新打jar包。
在main函数第一行添加如下代码:
PropertyConfiguratorconfigure(SystemgetProperty("userdir") + "/conf/log4jproperties");

在类库的 assemblyInfocs中改为:
[assembly: log4netConfigXmlConfigurator(Watch=true)]
意思是:让log4net从应用程序的config文件获取配置
假设有一个TestApp应用程序引用了上面类库,那么,按上面的修改,log4net将从TestAppconfig文件获取配置。这样,你可以将原来类库appconfig的内容移动到TestApp项目的appconfg中(TestApp项目编译后自动生成TestAppconfig)。
希望对你有所帮助!

// 读取一般的属性文件
FileInputStream fin=new FileInputStream("myini"); // 打开文件
Properties props=new Properties();                 // 建立属性类
propsload(fin);                                   // 读入文件
finclose();                                       // 关闭文件

NET Framework 类库未提供读写ini文件的相应类 不过可以使用WinAPI来处理INI文件的读写 代码很简单 如下

首先有两个API函数需放在你的class中且只能如此 放在method或(class外namespace内) 都会出现编译错误

using System Runtime InteropServices;

[DllImport( kernel )]

private static extern long WritePrivateProfileString(string section string key string val string filePath);

[DllImport( kernel )]

private static extern long GetPrivateProfileString(string section string key string def StringBuilder retVal int size string filePath);

WritePrivateProfileString方法说明

功能 将信息写入ini文件

返回值 long 如果为 则表示写入失败 反之成功

参数 (section):写入ini文件的某个小节名称(不区分大小写)

参数 (key):上面section下某个项的键名(不区分大小写)

参数 (val):上面key对应的value

参数 (filePath):ini的文件名 包括其路径(example: c:\config ini ) 如果没有指定路径 仅有文件名 系统会自动在windows目录中查找是否有对应的ini文件 如果没有则会自动在当前应用程序运行的根目录下创建ini文件

ini文件结构Example

[JXCDB]    小节名(section)

server=     server是JXCDB下的某个键 是server键的值(下同)

name=sa

pwd=

dbName=JXC

GetPrivateProfileString方法使用说明

功能 从ini文件中读取相应信息

返回值 返回所取信息字符串的字节长度

参数 (section):某个小节名(不区分大小写) 如果为空 则将在retVal内装载这个ini文件的所有小节列表

参数 (key):欲获取信息的某个键名(不区分大小写) 如果为空 则将在retVal内装载指定小节下的所有键列表

参数 (def):当指定信息 未找到时 则返回def 可以为空

参数 (retVal):一个字串缓冲区 所要获取的字符串将被保存在其中 其缓冲区大小至少为size

参数 (size):retVal的缓冲区大小(最大字符数量)

参数 (filePath):指定的ini文件路径 如果没有路径 则在windows目录下查找 如果还是没有则在应用程序目录下查找 再没有 就只能返回def了

详细使用Example

首先先创建一个ini文件 并保存信息

WritePrivateProfileString( JXCDB server Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB name txtName Text Trim() Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB pwd txtPwd Text Trim() Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB DBName JXC Application StartupPath + \\JXC_Server ini );

说明 Application StartupPath获取当前项目编译出的exe文件的绝对路径(不包含exe文件的文件名)

读取ini文件

StringBuilder stringBud = new StringBuilder( );

GetPrivateProfileString( JXCDB server 还未设置服务器IP stringBud Application StartupPath + \\JXC_Server ini );

此时所读取的server键对应的值已被保存在stringBud中 只需:

return stringBud ToString();

lishixinzhi/Article/program/net/201311/13445


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12605178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存