1、最近接手了一个项目,项目用的是SpringBoot,但其中有个类用的是单例,为了不改变单例,且还需要引入Spring管理的Bean对象;
2、对于一个单例类按照平时的注解方式添加,启动时会报空指针异常,因为static类对象是创建对象后,内存中还没有注入Bean信息,且无法初始化Bean实例,这里的解决办法是利用@PostConstruct来对单例类中对象的注入
@Component
public class MesssageHandle implements IMessageHandler {
private final static Logger logger = LoggerFactory.getLogger(MesssageHandle.class);
private static MesssageHandle instance = new MesssageHandle();
@Autowired
private ScheduleService scheduleService;
private MesssageHandle(){ }
public static MesssageHandle getInstance() {
return instance;
}
@PostConstruct
public void init(){
instance = this;
instance.scheduleService = this.scheduleService;
}
来都来了,点个赞再走呗~