繁体   English   中英

自动连线的带注释的Bean在侦听器类中为null

[英]Autowired annotated bean gets null in Listener class

方法得到空的日志服务

我使用了@ Component,@ ComponentScan,@ Service和@Configuration,但是没有一个起作用。

这是我的侦听器

@Component
public class LogOrder {

   private static LogService logService;

   @Autowired
   public void setLogService(LogService logService) {
       LogOrder.logService = logService;
   }   

   @PostUpdate
   private void after(Order order) {           
       logService.log("Logged");
   }

}

这是我的实体

@EntityListeners(LogOrder.class)
@Entity
public class Order{
}

这是LogService接口及其实现

public interface LogService {
    void send("");
}

@Service(value = "logService")
public class LogServiceImpl implements LogService {

    private final SomeOtherService someOtherService;

    @Autowired
    public LogServiceImpl(SomeOtherService someOtherService) {
        this.someOtherService = someOtherService;
    }

    public void send(String someText) {
        SomeTemplate someTemplate = someOtherService.someTemplate();
        someTemplate.convertAndSend(someText);
    }
}

我该怎么办才能使LogService不为null。

您正在尝试自动连接静态字段。

   private static LogService logService;

从属性中删除静态

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM