使用reactor(https://github.com/reactor/reactor)我通知一些事件,如
commandReactor.notify("CREATE_CUSTOMER", Event.wrap(customer));
commandReactor.notify("CREATE_ORDER", Event.wrap(order));
Run Code Online (Sandbox Code Playgroud)
如何实现选择以"CREATE"开头的所有事件的选择器?就像是
@Selector(value = "CREATE*", reactor = "@commandReactor")
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我试图让JPA Entity Listener通过将其标记为@Configurable来了解spring上下文.但是注入的spring bean是null.能够使用相同的技术使JPA实体了解Spring上下文.我使用Spring(core和data-jpa)作为基础设施.有关如何使用JPA Entity Listeners或spring data-jpa实现此目的的任何想法?
@Configurable
@Scope("singleton")
public class AggregateRootListener {
private static Logger log = LoggerFactory.getLogger(AggregateRootListener.class);
@Autowired
private EventHandlerHelper eventHandlerHelper;
@PostPersist
@PostUpdate
public void publishEvents(BaseAggregateRoot aggregateRoot){
log.info(aggregateRoot.getEvents().toString());
aggregateRoot.getEvents().stream()
.forEach(event -> {
eventHandlerHelper.notify(event, aggregateRoot);
log.info("Publishing " + event + " " + aggregateRoot.toString());
});
}
}
Run Code Online (Sandbox Code Playgroud)
和BaseAggregateRoot代码
@Configurable
@Scope("prototype")
@MappedSuperclass
@EntityListeners(AggregateRootListener.class)
public abstract class BaseAggregateRoot extends BaseDomain{
public static enum AggregateStatus {
ACTIVE, ARCHIVE
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "aggregateId", column = @Column(name = "ID", nullable = false))}) …
Run Code Online (Sandbox Code Playgroud)