中易网

spring怎么注解读取properties

答案:2  悬赏:30  
解决时间 2021-03-20 22:21
spring怎么注解读取properties
最佳答案
你就当成xml配置就行了,实现方法不同而已,一个是读取xml,一个是读取annotation,然后的步骤大多一样了。
全部回答
最常用读取properties文件的方法 inputstream in = getclass().getresourceasstream("资源name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用: inputstream ins = this.getclass().getresourceasstream("/cn/zhao/properties/testpropertiespath2.properties"); java中获取路径方法 获取路径的一个简单实现 反射方式获取properties文件的三种方式 1 反射方式获取properties文件最常用方法以及思考: java读取properties文件的方法比较多,网上最多的文章是"java读取properties文件的六种方法",但在java应用中,最常用还是通过java.lang.class类的getresourceasstream(string name) 方法来实现,但我见到众多读取properties文件的代码中,都会这么干: inputstream in = getclass().getresourceasstream("资源name"); 这里面有个问题,就是getclass()调用的时候默认省略了this!我们都知道,this是不能在static(静态)方法或者static块中使用的,原因是static类型的方法或者代码块是属于类本身的,不属于某个对象,而this本身就代表当前对象,而静态方法或者块调用的时候是不用初始化对象的。 问题是:假如我不想让某个类有对象,那么我会将此类的默认构造方法设为私有,当然也不会写别的共有的构造方法。并且我这个类是工具类,都是静态的方法和变量,我要在静态块或者静态方法中获取properties文件,这个方法就行不通了。 那怎么办呢?其实这个类就不是这么用的,他仅仅是需要获取一个class对象就可以了,那还不容易啊-- 取所有类的父类object,用object.class难道不比你的用你正在写类自身方便安全吗 ?呵呵,下面给出一个例子,以方便交流。 import java.util.properties; import java.io.inputstream; import java.io.ioexception; public final class testproperties { private static string param1; private static string param2; static { properties prop = new properties(); inputstream in = object. class .getresourceasstream( "/test.properties" ); try { prop.load(in); param1 = prop.getproperty( "inityears1" ).trim(); param2 = prop.getproperty( "inityears2" ).trim(); } catch (ioexception e) { e.printstacktrace(); } } private testproperties() { } public static string getparam1() { return param1; } public static string getparam2() { return param2; } public static void main(string args[]){ system.out.println(getparam1()); system.out.println(getparam2()); } } 运行结果: 151 152 当然,把object.class换成int.class照样行,呵呵,大家可以试试。 另外,如果是static方法或块中读取properties文件,还有一种最保险的方法,就是这个类的本身名字来直接获取class对象,比如本例中可写成testproperties.class,这样做是最保险的方法 2 获取路径的方式: file fileb = new file( this .getclass().getresource( "" ).getpath()); system. out .println( "fileb path: " + fileb); 2.2获取当前类所在的工程名: system. out .println("user.dir path: " + system. getproperty ("user.dir"))3 获取路径的一个简单的java实现 public static string getpath(string parentdir, string filename) { string path = null; string userdir = system.getproperty("user.dir"); string userdirname = new file(userdir).getname(); if (userdirname.equalsignorecase("lib") || userdirname.equalsignorecase("bin")) { file newf = new file(userdir); file newp = new file(newf.getparent()); if (filename.trim().equals("")) { path = newp.getpath() + file.separator + parentdir; } else { path = newp.getpath() + file.separator + parentdir + file.separator + filename; } } else { if (filename.trim().equals("")) { path = userdir + file.separator + parentdir; } else { path = userdir + file.separator + parentdir + file.separator + filename; } } return path; } 4 利用反射的方式获取路径: inputstream ips1 = enumeration . class .getclassloader() .getresourceasstream( "cn/zhao/enumstudy/testpropertiespath1.properties" ); inputstream ips2 = enumeration . class .getresourceasstream( "testpropertiespath1.properties" ); inputstream ips3 = enumeration . class .getresourceasstream( "properties/testpropertiespath2.properties" );
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
九岁儿童甲状腺肿大,无症状,促甲状腺素,甲
小米小盒子如何连接老功放
济南陆军学院的毕业证在网上哪里可以查到
如何用龙之向导查找通用飞机成品
《母亲的眼泪》中动作描写有那些
大连的华润燃气,待遇怎么样?
英德市桥头派出所在什么地方啊,我要过去处理
二战时期如果希特勒跟斯大林联合起来同时两路
\u7535\u8111\u5f00\u673a\u663e\u793a\u84dd
不花一毛钱的网页游戏
银行卡和身份证的正反面照片给别人了会不会有
网线的接法?主要是颜色的排法!
西安雁塔区这哪有卖二手电脑椅的?急求。。。
我一向认为我很聪明,可是对待爱的人,我感觉
离北京近的南方城市?清明节要和男朋友出去玩
推荐资讯
历史选项:“区域统一的世界”说法本身是否正
玻尿酸可以用灭菌注射用水稀释吗
长春欧亚卖场附近哪有卖日杂的?
急~~初三学生代表在开学典礼上的发言
请问我的笔记本电脑主板有吱吱的声音像电流声
柯南现在有哪几集特别好看,除剧场版
英国斗牛犬看家吗,性格如何
-( )!Or we won't catch the last bus.
把cad中的图复制到word里,为什么在word点击该
安庆有哪些私立学校?
长了稀稀疏疏的阴毛身高146,没变声
在广州开服装店的男女朋友们,我想问你们是怎
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?