


-
[上海|荣耀师兄]JAVA-王琦超
0我知道的两种方法:
第一种就是你这种,类似于普通Pojo类的控制反转,注入属性
需要properties文件存储信息,在applicationcontext.xml中配置bean信息,再创建一个包含基本属性和get/set方法的短信实体类,然后就可以在短信的工具类中使用@Resource标签调用实体类了。
就不贴代码了。
第二种是使用Properties类来加载properties文件
创建一个工具类中直接加载配置文件,这样会在每次初始化加载的时候加载一次,之后在短信工具类中调用就可以了
/**
* 加载properties文件,并可以通过静态方法调用
*/
public class PropertyUtil {
private static final Logger logger = Logger.getLogger(PropertyUtil.class);
private static Properties props;
static{
loadProps();
}
/**
* 加载配置文件
*/
synchronized static private void loadProps(){
//想要更换配置文件只需要在这里修改proname就可以了
String proName="telcode.properties";
logger.info("开始加载properties文件内容.......");
props = new Properties();
InputStream in = null;
try {
// <!--第一种,通过类加载器进行获取properties文件流-->
// in = PropertyUtil.class.getClassLoader().getResourceAsStream(proName);
// <!--第二种,通过类进行获取properties文件流-->
in = PropertyUtil.class.getResourceAsStream("/"+proName+"");
props.load(in);
} catch (FileNotFoundException e) {
logger.error(proName+"文件未找到");
} catch (IOException e) {
logger.error("出现IOException");
} finally {
try {
if(null != in) {
in.close();
}
} catch (IOException e) {
logger.error(proName+"文件流关闭出现异常");
}
}
logger.info("加载properties文件内容完成...........");
logger.info("properties文件内容:" + props);
}
/**
* 获取配置文件中的键值对
* @param key 键名
* @return 值
*/
public static String getProperty(String key){
if(null == props) {
loadProps();
}
return props.getProperty(key);
}
/**
* 获取键值对,如果没有找到需要的键,就使用默认值
* @param key 键
* @param defaultValue 默认值
* @return 值
*/
public static String getProperty(String key, String defaultValue) {
if(null == props) {
loadProps();
}
return props.getProperty(key, defaultValue);
}
}目前比较好的就是这两种,具体区别可以自行体会,我自己感觉下面这种可移植性比较高,而且可以指定找不到的时候的默认值,但是师兄说很low,这个类是很久之前就不用了的
编辑于2018-05-30 -
[北京|结业弟子]JAVA-王子平
0编辑于2019-03-28
- 去第 页