一、问题引入
我们常用的注入方式如图,使用@Autowired注解,或者使用构造函数/setter的形式。
@Controller
public class HeadLineOperationController {
@Autowired
private HeadLineService headLineService;
}
当我们需要给一个static修饰的成员变量注入时,上面的形式是否可行呢?
二、解决方案
答案时不可行的,这是因为静态成员变量时在类初始化的时候就已经初始化了,时属于类级别的。
但是还可以又另外一种方式来实现我们当前需求,具体如下:
/**
* @author leichengdong
* @version 1.0.0
* @date 2020/8/10 0:52
*/
@Component
public class GenericAndJson {
private static ObjectMapper mapper;
@Autowired
public void setMapper(ObjectMapper mapper){
GenericAndJson.mapper = mapper;
}
}