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

时间:2019-07-13 07:21:12

标签: java spring hibernate jpa spring-data-jpa

之后方法中,我得到的 logservice 为空。

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

这是我的 Listener

@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");
   }

}

这是我的 Entity

@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 不为空。

1 个答案:

答案 0 :(得分:0)

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

   private static LogService logService;

从属性中删除静态