【如何用spring管理账号密码等信息 _第三方API调用 】 | IT修真院·坑乎
问题已收录 如何用spring管理账号密码等信息
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(2)
第三方API调用
详细描述
错误截图
编辑于2025-04-09
  • [上海|荣耀师兄]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

    可以使用set方式,将你的工具类注册成bean,工具类的参数写在以键值对的方式写在properties中,在程序初始化的时候,就会把这些参数自动填入到该类中,并生成一个bean对象

    编辑于2019-03-28