先看看下面SmsUtil類裏的這兩個重載方法
@ConfigurationProperties(prefix = "sms.config") @Setter public class SmsUtil { @Autowired private PlatformConfig platformConfig; private String smsUrl; /** * 發送短信 * * @param phone 手機號 * @param msg 信息內容 * @return 處理的信息 */ public String sendSMS(String phone, String msg) { StringBuilder sbParam = new StringBuilder(); StringBuilder url = new StringBuilder(); if (StringUtils.isBlank(phone)) { return "手機號不能爲空!"; } if (StringUtils.isBlank(msg)) { return "發送的信息內容不能爲空!"; } if (!msg.contains(platformConfig.getSmsSignature())) { msg = platformConfig.getSmsSignature() + msg; } try { sbParam.append("?account=").append(platformConfig.getSmsAccount()); sbParam.append("&pwd=").append(URLEncoder.encode(platformConfig.getSmsKey(), "UTF-8")).append("&mphone=").append(phone).append("&content=") .append(URLEncoder.encode(msg, "UTF-8")); url.append(smsUrl) .append(sbParam.toString()); Integer result = HttpClientUtils.requestByGetMethod(url.toString()); return result.toString(); } catch (Exception e) { e.printStackTrace(); log.error("發送短信異常", e); } return "信息發送成功!"; } /** * 發送短信 * @param phone 手機號 * @param msg 短信內容 * @param userName 通道名稱 * @param passWord 通道密碼 * @return */ public String sendSMS(String phone, String msg,String userName,String passWord) { StringBuilder sbParam = new StringBuilder(); StringBuilder url = new StringBuilder(); if (StringUtils.isBlank(phone)) { return "手機號不能爲空!"; } if (StringUtils.isBlank(msg)) { return "發送的信息內容不能爲空!"; } if (!msg.contains(platformConfig.getSmsSignature())) { msg = platformConfig.getSmsSignature() + msg; } try { sbParam.append("?account=").append(userName); sbParam.append("&pwd=").append(URLEncoder.encode(passWord, "UTF-8")).append("&mphone=").append(phone).append("&content=") .append(URLEncoder.encode(msg, "UTF-8")); url.append(smsUrl) .append(sbParam.toString()); Integer result = HttpClientUtils.requestByGetMethod(url.toString()); return result.toString(); } catch (Exception e) { e.printStackTrace(); log.error("發送短信異常", e); } return "信息發送成功!"; } }
我想你有一個想法跟我一樣,重構方案如下↓↓↓↓
修改第一個sendSMS方法的方法體爲:
/** * 發送短信 * * @param phone 手機號 * @param msg 信息內容 * @return 處理的信息 */ public String sendSMS(String phone, String msg) { return sendSMS(phone, msg, platformConfig.getSmsAccount(), platformConfig.getSmsKey()); }
當然,還有其他的需要重構調整的地方。例如 passWord,程序員的英語水平,應該是password。
再有,再有什麼呢?