我們知道,正常情況下,spring的一個(gè)bean要依賴其他資源,如properties或其他bean,直接利用@Value或@Autowired就可以了。這兩個(gè)注解就相當(dāng)于spring application context xml文件定義bean時(shí)的property節(jié)點(diǎn)。相當(dāng)于調(diào)用了每個(gè)屬性的set方法。
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出永嘉免費(fèi)做網(wǎng)站回饋大家。
然而,當(dāng)一個(gè)java類里的靜態(tài)方法需要引用一個(gè)spring資源時(shí),我們需要定義靜態(tài)屬性,然后通過顯示聲明它們的set方法(注意,這個(gè)set方法是非靜態(tài)的哦),來實(shí)現(xiàn)靜態(tài)屬性的注入。
見如下示例代碼,其中dingdingReceiverMan屬性的set方法通過@Value注解來注入一個(gè)配置
“monitor_log.dingding.receiverMan”;redisUtil屬性的set方法通過@Autowired注解來注入一個(gè)bean——被@Component修飾的類“RedisUtil”。
@Component @Slf4j public class SendWarningMessage { private static String dingdingReceiverMan; private static RedisUtil redisUtil; static final String ACC_MONITOR_REDIS_KEY_PREFIX = "ACC_MONITOR_"; @Value("${monitor_log.dingding.receiverMan}") public void setDingdingReceiverMan(String value) { dingdingReceiverMan = value; } @Autowired public void setRedisUtil(RedisUtil value) { redisUtil = value; } public static void sendMsg(String mobile, String msg) { ... String redisKey = ACC_MONITOR_REDIS_KEY_PREFIX + MD5Util.md5(warningMsg); if (redisUtil.get(redisKey) != null) { log.info("手機(jī)號近期發(fā)過,為防止頻繁發(fā)送,本次不發(fā)。 {}", mobile); } else { log.info("發(fā)送的消息:{}", warningMsg); DingdingUtil.sendDingDing(dingdingReceiverMan, warningMsg); redisUtil.set(redisKey, warningMsg, 5 * 60); } ... } }
以上就是本次知識點(diǎn)的全部相關(guān)代碼,感謝大家的學(xué)習(xí)和對創(chuàng)新互聯(lián)的支持。