java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法

java相关:spring为类的静态属性实现注入实例方法

发布于 2020-3-31|

复制链接

在本篇文章里小妖给大家整理的是关于spring为类的静态属性实现注入实例方法,有需要的朋友们可以参考下。

我们知道,正常情况下,spring的一个bean要依赖其他资源,如properties或其他bean,直接利用@Value或@Autowired就可以了。这两个注解就相当于spring application context xml文件定义bean时的property节点。相当于调用了每个属性的set方法。

```java

```

然而,当一个java类里的静态方法需要引用一个spring资源时,我们需要定义静态属性,然后通过显示声明它们的set方法(注意,这个set方法是非静态的哦),来实现静态属性的注入。

见如下示例代码,其中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("手机号近期发过,为防止频繁发送,本次不发。 {}", mobile);

} else {

log.info("发送的消息:{}", warningMsg);

DingdingUtil.sendDingDing(dingdingReceiverMan, warningMsg);

redisUtil.set(redisKey, warningMsg, 5 * 60);

}

...

}

}

```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 实现超时_如何实现带有超时的Runnable? - java

我目前有一个相当简单的SSL服务器/客户端项目,其中涉及标准Java后端和Android前端。与客户端发送数据后,我想尝试从服务器读取响应。但是,我遇到了一个小问题。服务器并不总是响应,因此我不得不以某种方式尝试以异步方式获取响应。…

数据大并发处理

网站并发一类 java用 netty在iis前边加 nginx 做负载均衡 你的请求都堵在一起了 让 用户直接访问 nginx 然后我在nginx 把用户请求分配给不同的iis处理也可以分给不同的不同的服务器处理。nginx 可以打开多个iis转载于:https://www.cnblogs.com/userbibi/p/4688792.html

身份证校验(c++实现)

描述: 我国国标〖GB 11643-1999〗中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校…

php 判断网络图片是否存,PHP判断远程图片或文件或url是否存在-180

PHP判断远程图片或文件或url是否存在-180我通常使用curl判断判断远程图片或文件是否存在:/*** link http://www.phpddt.com*/function url_exists($url) {$ch curl_init();curl_setopt ($ch, CURLOPT_URL, $url);//不下载curl_setopt($ch, CURLOPT_NOBODY, 1);//设…

js Date对象总结

Date在js中和Array类似,都是拥有自己的特殊方法的特殊对象。 由于平常用到Date着实不多,对它的了解颇浅。上周被问到怎么样获取某年某个月的天数,我当时想了一会儿,回答说有两种,一种自己写判断闰年的逻辑,…

php openssl做什么,php开启openssl的方法

php开启openssl的方法关注:294 答案:2 mip版解决时间 2021-02-02 21:13提问者笑低了眉眼2021-02-02 05:23我是一个小白,对于php完全不懂,所以希望大神能给我写一个傻瓜教程。php.ini在哪啊,怎么修改啊什么的都不懂。该用什么做什么&#xf…

LightOJ 1422 区间DP Halloween Costumes

d(i, j)表示第i天到第j天至少要穿多少件衣服。 先不考虑第i天和后面 i1 ~ j 天的联系,那就是至少要穿 1 d(i1, j)件衣服。 再看状态转移,如果后面第k(i1 ≤ k ≤ j)天所穿的衣服和第i天一样的话,那么完全可以把第i1~k-1天所穿的衣服脱下来。…

使用php创建一个注册表单,如何实现一个简单的注册表单

创建一个注册表单是非常容易的 - 它事实上意味着,你只需要创建一个表单,表单将更新一些User的模型对象(这个例子是一个Doctrine实体)并保存它。受欢迎的FOSUserBundle 提供了一个注册表单,重置密码表单和其他用户管理功能。如果你先前没有一个…

php 图片不让下载,php让图片可以下载的方法

php让图片可以下载的方法发布于 2014-10-04 11:16:18 | 102 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,…

while语法php格式,PHP While 循环

循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。PHP 循环在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。在 PHP 中,提供了下列循环语句:while–…

【转】一句话的设计模式

转自:http://www.cnblogs.com/lzhlyle/p/4696645.html 如题,实际上,我想这是很困难的。 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆。 下列是我之前在学习《大话设计模式》时做的笔记总结&…

php代码导入sql,php导入SQL文件(示例代码)

/*************PHP导入.sql文件运行版本:php5,php4作者:panxp邮件:coolpan123gmail.com*编辑整理:bbs.it-home.org**************/$host "localhost";$user "root";$pwd "";$file_dir dirname(__FILE__);$file_name "bar.s…

jQuery遍历Json数组

var jsonArray [{ "name": "张三", "password": "123456"},{ "name": "李四", "password": "123456"}]; $.each(obj, function (n, value) { n:数组中的位置; val…

php自动获取m3u8,PHP自动Get监控源码分享

使用方法:创建个PHP文件放到你的网站根目录里面,访问后不会出现结果,等待个20秒左右关闭页面,就会自动执行了。如果不重启php服务器 或者重启服务器,get监控一直会处于运行状态。测试了一下 秒赞网的监控,效…

Vertex and Fragment Shader

Semantics语义词:   定义:GPU工作时,数据通常暂存在寄存器,那么在Cg中,语义词就指定了输入/输出数据和图形硬件寄存器之间的映射关系。   原理:根据输入语义,图形处理器从某个寄存器取数据&…

linux php cgi.sock,nginx中unix:/tmp/php-cgi.sock错误解决解决

出现这种问题一般是因为/tmp/php-cgi.sock功能是负责流量最主要的特征就是unix socket比tcp快,下面来解决办法。首先建立/tmp/php-cgi.sock文件,然后将之改所有者改为www-data:#我直接改成nginx的用户,好像必须要属于nginx的用户组才能正常使…

erlang套接字

Erlang的套接字可以有三种打开模式:主动(active)、单次主动(active once)或被动(passive)。这是通过在gen_tcp:connect(Address, Port, Options)或gen_tcp:listen(Port, Options)的Options参数里…

php 类学习,php的类学习(一)

function __autoload($class_name){//require_once语句在脚本执行期间包含并运行指定文件。此行为和 require()语句完全相同,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含require_once $class_name . .php;}$obj new testAAA();$obj2new ty…