您好,登錄后才能下訂單哦!
這篇文章主要介紹“spring類的靜態屬性實現注入的實例方法”,在日常操作中,相信很多人在spring類的靜態屬性實現注入的實例方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”spring類的靜態屬性實現注入的實例方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們知道,正常情況下,spring的一個bean要依賴其他資源,如properties或其他bean,直接利用@Value或@Autowired就可以了。這兩個注解就相當于spring application context xml文件定義bean時的property節點。相當于調用了每個屬性的set方法。
<bean id="person" class="com.myapp.core.spel.xml.Person"> <property name="book" value="book" /> <property name="bookName" value="#{book.name}"/> </bean>
然而,當一個java類里的靜態方法需要引用一個spring資源時,我們需要定義靜態屬性,然后通過顯示聲明它們的set方法(注意,這個set方法是非靜態的哦),來實現靜態屬性的注入。
見如下示例代碼,其中dingdingReceiverMan屬性的set方法通過@Value注解來注入一個配置
“monitor_log.dingding.receiverMan”;redisUtil屬性的set方法通過@Autowired注解來注入一個bean——被@Component修飾的類“RedisUtil”。
@Component@Slf4jpublic 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("手機號近期發過,為防止頻繁發送,本次不發。 {}", mobile); } else { log.info("發送的消息:{}", warningMsg); DingdingUtil.sendDingDing(dingdingReceiverMan, warningMsg); redisUtil.set(redisKey, warningMsg, 5 * 60); } ... }}
到此,關于“spring類的靜態屬性實現注入的實例方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。