文档章节

静态工具类使用注解引入非静态类

王文龙
 王文龙
发布于 2016/11/04 11:11
字数 257
阅读 129
收藏 0

静态类使用spring注解引入非静态类,会抛出NullPointerException

1.这是由于静态类的变量属于类的属性而非对象的属性,而spring的注入是依赖于对象层面上的注入。

2.从加载机制来讲 static 是有jvm创建,也就是说当系统启动的时候static对象就已经被创建了,而spring的加载机制在jvm之后,spring加载是在你需要的时候创建该对象的实例,当你注入一个静态变量类的时候spring还未对该类进行初始化。所以抛出NullPointerException是理所当然的。

如果确实要用到,可以参照下面的写法。

定义一个静态对象,自动注入一个同样的对象,使用@PostConstruct 在类初始化之前讲spring注入的该类的对象导向静态方法变量。

@Component
public class StatisticLogger {

  private static Dao dao;

  @Autowired
  private Dao dao0;

  @PostConstruct     
  public void initStaticDao () {
     dao = this.dao0;
 }


}

© 著作权归作者所有

王文龙
粉丝 3
博文 6
码字总数 1315
作品 0
南京
私信 提问
你现在还在手动生成set,get方法吗?使用lombok

JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了...

互扯程序
2017/12/19
0
0
lombok介绍、使用方法和总结

lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写,即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,当然,这带来的...

watermelon11
03/08
0
0
优雅的Java工具库Lombok

优雅的Java工具库Lombok 最近在公司的项目中看到了对于Lombok的应用,通过@Data注解标注POJO,省略了大量的getter/setter代码,原先冗长的POJO在瘦身之后直接变得干净、清爽,程序员再也不需...

wxiaoqi
2018/08/19
0
0
WebService初体验——在JDK下发布第一个ws服务

首先,建立一个WebService。 package cn.xzj.ws;import javax.jws.WebService;import javax.xml.ws.Endpoint;//使用jdk1.6.0_24以上版本//1、添加注解@WebServicepublic class HelloWorld { ......

许大白
2014/03/07
0
0
关于JAVA你必须知道的那些事(三):继承和访问修饰符

今天乘着还有一些时间,把上次拖欠的面向对象编程三大特性中遗留的继承和多态给简单说明一下。这一部分还是非常重要的,需要仔细思考。 继承 继承:它是一种类与类之间的关系,通过使用已存在...

拾光TM
2018/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Guava RateLimiter + AOP注解实现单机限流、统计QPS

1、基于springboot项目pom.xml添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><d......

铁骨铮铮
45分钟前
3
0
龙芯版办公软件下载

金山wps office   rpm包:http://ftp.loongnix.org/os/loongnix/1.0/os/Packages/w/wps-office-10.8.0.6472-1.a20p1.mips64el.rpm   deb包:http://packages.deepin.com/loongson/pool/......

gugudu
50分钟前
3
0
BI报表分析和数据可视化,推荐这三个开源工具!

开源篇 一、Superset 1、技术架构:Python + Flask + React + Redux + SQLAlchemy 2、使用人群: (1)开发/分析人员做好看板,业务人员浏览看板数据 (2)业务人员可自行编辑图表,查看满足...

飓风2000
57分钟前
3
0
CountDownLatch

CountDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程...

少年已不再年少
今天
2
0
centos7 新手阿里云服务器安装mongodb

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB特点 模式自由 :可以把不同结构的文档存...

醉雨
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部