笔者在做代码重构时,遇到这样的一个问题,觉得对于不熟悉Spring框架的同学来说,还是很有学习意义的,特记录在此。
场景是这样的:需要一个Dto2VoFactory的类,该类有一个静态属性factorys,该属性需要存储一些业务渲染模版类的具体实现,以便后续调用。
如果按照普通的bean注入的方式,@Autowired,毫无疑问会报空指针,因为正常的bean注入方式不支持静态属性。所以,笔者查阅了一些资料,自己实现一个Spring bean的静态注入,代码很简单,如下:
/**
* @author mayan
* @create 2019-11-14
* @decription Spring静态注入
*/
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringBeanUtil.applicationContext = applicationContext;
}
public static <T> T getBean(Class