java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法
java相關:spring為類的靜態(tài)屬性實現(xiàn)注入實例方法
發(fā)布于 2020-3-31|
復制鏈接
在本篇文章里小妖給大家整理的是關于spring為類的靜態(tài)屬性實現(xiàn)注入實例方法,有需要的朋友們可以參考下。
我們知道,正常情況下,spring的一個bean要依賴其他資源,如properties或其他bean,直接利用@Value或@Autowired就可以了。這兩個注解就相當于spring application context xml文件定義bean時的property節(jié)點。相當于調用了每個屬性的set方法。
```java
```
然而,當一個java類里的靜態(tài)方法需要引用一個spring資源時,我們需要定義靜態(tài)屬性,然后通過顯示聲明它們的set方法(注意,這個set方法是非靜態(tài)的哦),來實現(xiàn)靜態(tài)屬性的注入。
見如下示例代碼,其中dingdingReceiverMan屬性的set方法通過@Value注解來注入一個配置“monitor_log.dingding.receiverMan”;redisUtil屬性的set方法通過@Autowired注解來注入一個bean——被@Component修飾的類“RedisUtil”。
```java
@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("手機號近期發(fā)過,為防止頻繁發(fā)送,本次不發(fā)。 {}", mobile);
} else {
log.info("發(fā)送的消息:{}", warningMsg);
DingdingUtil.sendDingDing(dingdingReceiverMan, warningMsg);
redisUtil.set(redisKey, warningMsg, 5 * 60);
}
...
}
}
```
總結
以上是生活随笔為你收集整理的java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软MDT 安装与配置(一)
- 下一篇: index.html乱码问题,用apac