Spring不能注入Static变量的原因及Spring注入静态变量
作者:Draenei 时间:2023-11-24 04:16:36
下面给大家介绍spring不能注入static变量的原因,具体详情如下所示:
Spring 依赖注入 是依赖 set方法
set方法是 是普通的对象方法
static变量是类的属性
@Autowired
private static JdbcTemplate jdbcTemplate;
单纯看这个注入过程是没有报错的,但是在接下来的jdbcTemplate.query()会报空指针错误.
ps:Spring注入静态变量
今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码:
Class Util{
private static XXX xxx;
xxx = BeanUtil.getBean("xxx");
public static void method(){
xxx.func();
}
public static void method(){
xxx.func();
}
}
这里是使用的getBean的方式,获得XXX的实例,但是别人说这个方法不好,想要注入的方式。
但是静态的XXX如何注入呢?
上网查了很多的说法,其实很简单:
Class Util{
private static XXX xxx;
public void setXxx(XXX xxx){
this.xxx = xxx;
}
public void getXxx(){
return xxx;
}
public static void method1(){
xxx.func1();
}
public static void method2(){
xxx.func2();
}
}
在xml中正常配置注入就可以了。
<bean value="test" class="x.x.x.Util">
<property value="xxx" ref="xxx"/>
</bean>
这里要注意,自动生成的getter和setter方法,会带有static的限定符,需要去掉,才可以。
标签:spring,注入,static,变量
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁
2023-06-04 04:54:22
SpringBoot实现接口等幂次校验的示例代码
2022-01-21 10:49:00
深入理解Java对象复制
2021-10-06 05:39:27
![](https://img.aspxhome.com/file/2023/5/79295_0s.png)
Android 保存WebView中的图片示例
2021-10-05 21:57:05
Android音视频开发Media FrameWork框架源码解析
2021-08-07 05:12:14
![](https://img.aspxhome.com/file/2023/3/114303_0s.jpg)
C语言在输入输出时遇到的常见问题总结
2021-11-08 15:22:37
SpringBoot实现Excel文件批量上传导入数据库
2023-11-29 11:13:44
![](https://img.aspxhome.com/file/2023/1/60571_0s.jpg)
Java中char[]输出不是内存地址的原因详解
2022-08-04 11:00:11
java读取xml配置参数代码实例
2023-11-25 03:03:17
Java实现InputStream的任意拷贝方式
2022-04-08 10:11:32
Java SpringBoot整合SpringCloud
2022-11-11 15:07:46
![](https://img.aspxhome.com/file/2023/2/63002_0s.png)
Java中关于泛型、包装类及ArrayList的详细教程
2021-12-25 00:46:34
![](https://img.aspxhome.com/file/2023/4/122044_0s.png)
SpringBoot如何动态改变日志级别
2021-08-29 02:32:17
![](https://img.aspxhome.com/file/2023/2/93152_0s.png)
Java多线程与线程池技术分享
2021-07-25 07:35:11
![](https://img.aspxhome.com/file/2023/2/80322_0s.jpg)
Android跳转三方应用实例代码
2022-02-01 11:15:42
![](https://img.aspxhome.com/file/2023/7/125407_0s.jpg)
Java实现文件批量重命名,移动和删除
2022-02-27 03:32:19
![](https://img.aspxhome.com/file/2023/4/128834_0s.png)
Struts2通过自定义标签实现权限控制的方法
2021-07-19 11:06:22
Android系统制作自定义签名的例子
2023-02-02 05:10:04
![](https://img.aspxhome.com/file/2023/5/94985_0s.jpg)
Android RecyclerView添加搜索过滤器的示例代码
2022-03-08 21:44:49
![](https://img.aspxhome.com/file/2023/8/108278_0s.gif)
Java class文件格式之方法_动力节点Java学院整理
2021-07-15 04:14:23
![](https://img.aspxhome.com/file/2023/3/99893_0s.png)