Spring Boot中单例类实现对象的注入

 

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;
   }

 

你可能感兴趣的:(Spring Boot中单例类实现对象的注入)