org.springframework.context.ConfigurableApplicationContext.publishEvent()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(106)

本文整理了Java中org.springframework.context.ConfigurableApplicationContext.publishEvent()方法的一些代码示例,展示了ConfigurableApplicationContext.publishEvent()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ConfigurableApplicationContext.publishEvent()方法的具体详情如下:
包路径:org.springframework.context.ConfigurableApplicationContext
类名称:ConfigurableApplicationContext
方法名:publishEvent

ConfigurableApplicationContext.publishEvent介绍

暂无

代码示例

代码示例来源:origin: spring-projects/spring-framework

@Test
public void orderedListeners() {
  load(OrderedTestListener.class);
  OrderedTestListener listener = this.context.getBean(OrderedTestListener.class);
  assertTrue(listener.order.isEmpty());
  this.context.publishEvent("whatever");
  assertThat(listener.order, contains("first", "second", "third"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void asyncProcessingAppliedWithInterfaceProxy() throws InterruptedException {
  doLoad(AsyncConfigurationWithInterfaces.class, SimpleProxyTestBean.class);
  String threadName = Thread.currentThread().getName();
  AnotherTestEvent event = new AnotherTestEvent(this, threadName);
  SimpleService listener = this.context.getBean(SimpleService.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent(event);
  this.countDownLatch.await(2, TimeUnit.SECONDS);
  this.eventCollector.assertEvent(listener, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void asyncProcessingApplied() throws InterruptedException {
  loadAsync(AsyncEventListener.class);
  String threadName = Thread.currentThread().getName();
  AnotherTestEvent event = new AnotherTestEvent(this, threadName);
  AsyncEventListener listener = this.context.getBean(AsyncEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent(event);
  this.countDownLatch.await(2, TimeUnit.SECONDS);
  this.eventCollector.assertEvent(listener, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void listenerWithSimplePayload() {
  load(TestEventListener.class);
  TestEventListener listener = this.context.getBean(TestEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent("test");
  this.eventCollector.assertEvent(listener, "test");
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void simpleEventXmlConfig() {
  this.context = new ClassPathXmlApplicationContext(
      "org/springframework/context/event/simple-event-configuration.xml");
  TestEvent event = new TestEvent(this, "test");
  TestEventListener listener = this.context.getBean(TestEventListener.class);
  this.eventCollector = getEventCollector(this.context);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent(event);
  this.eventCollector.assertEvent(listener, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void exceptionNotPropagatedWithAsync() throws InterruptedException {
  loadAsync(ExceptionEventListener.class);
  AnotherTestEvent event = new AnotherTestEvent(this, "fail");
  ExceptionEventListener listener = this.context.getBean(ExceptionEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent(event);
  this.countDownLatch.await(2, TimeUnit.SECONDS);
  this.eventCollector.assertEvent(listener, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void listenerWithNonMatchingPayload() {
  load(TestEventListener.class);
  TestEventListener listener = this.context.getBean(TestEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent(123L);
  this.eventCollector.assertNoEventReceived(listener);
  this.eventCollector.assertTotalEventsCount(0);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void listenerWithGenericApplicationEvent() {
  load(GenericEventListener.class);
  GenericEventListener listener = this.context.getBean(GenericEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.context.publishEvent("TEST");
  this.eventCollector.assertEvent(listener, "TEST");
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void listenerWithResolvableTypeEventWrongGeneric() {
  load(ResolvableTypeEventListener.class);
  ResolvableTypeEventListener listener = this.context.getBean(ResolvableTypeEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  GenericEventPojo<Long> event = new GenericEventPojo<>(123L);
  this.context.publishEvent(event);
  this.eventCollector.assertNoEventReceived(listener);
  this.eventCollector.assertTotalEventsCount(0);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void metaAnnotationIsDiscovered() {
  load(MetaAnnotationListenerTestBean.class);
  MetaAnnotationListenerTestBean bean = this.context.getBean(MetaAnnotationListenerTestBean.class);
  this.eventCollector.assertNoEventReceived(bean);
  TestEvent event = new TestEvent();
  this.context.publishEvent(event);
  this.eventCollector.assertEvent(bean, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void listenerWithResolvableTypeEvent() {
  load(ResolvableTypeEventListener.class);
  ResolvableTypeEventListener listener = this.context.getBean(ResolvableTypeEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  GenericEventPojo<String> event = new GenericEventPojo<>("TEST");
  this.context.publishEvent(event);
  this.eventCollector.assertEvent(listener, event);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void nullReplyIgnored() {
  load(TestEventListener.class, ReplyEventListener.class);
  AnotherTestEvent event = new AnotherTestEvent(this, null); // No response
  ReplyEventListener replyEventListener = this.context.getBean(ReplyEventListener.class);
  TestEventListener listener = this.context.getBean(TestEventListener.class);
  this.eventCollector.assertNoEventReceived(listener);
  this.eventCollector.assertNoEventReceived(replyEventListener);
  this.context.publishEvent(event);
  this.eventCollector.assertEvent(replyEventListener, event);
  this.eventCollector.assertNoEventReceived(listener);
  this.eventCollector.assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterCommitWithTransactionalComponentListenerProxiedViaDynamicProxy() {
  load(TransactionalConfiguration.class, TransactionalComponentTestListener.class);
  this.transactionTemplate.execute(status -> {
    getContext().publishEvent("SKIP");
    getEventCollector().assertNoEventReceived();
    return null;
  });
  getEventCollector().assertNoEventReceived();
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void beanAutomaticallyHearsEvents() throws Exception {
  //String[] listenerNames = ((ListableBeanFactory) applicationContext).getBeanDefinitionNames(ApplicationListener.class);
  //assertTrue("listeners include beanThatListens", Arrays.asList(listenerNames).contains("beanThatListens"));
  BeanThatListens b = (BeanThatListens) applicationContext.getBean("beanThatListens");
  b.zero();
  assertTrue("0 events before publication", b.getEventCount() == 0);
  this.applicationContext.publishEvent(new MyEvent(this));
  assertTrue("1 events after publication, not " + b.getEventCount(), b.getEventCount() == 1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterCompletionCommit() {
  load(AfterCompletionTestListener.class);
  this.transactionTemplate.execute(status -> {
    getContext().publishEvent("test");
    getEventCollector().assertNoEventReceived();
    return null;
  });
  getEventCollector().assertEvents(EventCollector.AFTER_COMPLETION, "test");
  getEventCollector().assertTotalEventsCount(1); // After rollback not invoked
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterCommit() {
  load(AfterCompletionExplicitTestListener.class);
  this.transactionTemplate.execute(status -> {
    getContext().publishEvent("test");
    getEventCollector().assertNoEventReceived();
    return null;
  });
  getEventCollector().assertEvents(EventCollector.AFTER_COMMIT, "test");
  getEventCollector().assertTotalEventsCount(1); // After rollback not invoked
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void afterCompletionRollback() {
  load(AfterCompletionTestListener.class);
  this.transactionTemplate.execute(status -> {
    getContext().publishEvent("test");
    getEventCollector().assertNoEventReceived();
    status.setRollbackOnly();
    return null;
  });
  getEventCollector().assertEvents(EventCollector.AFTER_COMPLETION, "test");
  getEventCollector().assertTotalEventsCount(1); // After rollback not invoked
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void immediately() {
  load(ImmediateTestListener.class);
  this.transactionTemplate.execute(status -> {
    getContext().publishEvent("test");
    getEventCollector().assertEvents(EventCollector.IMMEDIATELY, "test");
    getEventCollector().assertTotalEventsCount(1);
    return null;
  });
  getEventCollector().assertEvents(EventCollector.IMMEDIATELY, "test");
  getEventCollector().assertTotalEventsCount(1);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void noTransactionWithFallbackExecution() {
  load(FallbackExecutionTestListener.class);
  this.context.publishEvent("test");
  this.eventCollector.assertEvents(EventCollector.BEFORE_COMMIT, "test");
  this.eventCollector.assertEvents(EventCollector.AFTER_COMMIT, "test");
  this.eventCollector.assertEvents(EventCollector.AFTER_ROLLBACK, "test");
  this.eventCollector.assertEvents(EventCollector.AFTER_COMPLETION, "test");
  getEventCollector().assertTotalEventsCount(4);
}

代码示例来源:origin: spring-projects/spring-framework

protected void doTestEvents(TestListener listener, TestListener parentListener,
    MyEvent event) {
  listener.zeroCounter();
  parentListener.zeroCounter();
  assertTrue("0 events before publication", listener.getEventCount() == 0);
  assertTrue("0 parent events before publication", parentListener.getEventCount() == 0);
  this.applicationContext.publishEvent(event);
  assertTrue("1 events after publication, not " + listener.getEventCount(), listener.getEventCount() == 1);
  assertTrue("1 parent events after publication", parentListener.getEventCount() == 1);
}

相关文章

微信公众号

最新文章

更多

ConfigurableApplicationContext类方法