SpringBoot自定义监听器来实现消息的推送与接收
一、自定义【监听事件】继承ApplicationEvent
public class EmailEvent extends ApplicationEvent {
@Setter
@Getter
private String email;
@Setter
@Getter
private String content;
public EmailEvent(Object source,String email, String content){
super(source);
this.email = email;
this.content = content;
}
public EmailEvent(Object source) {
super(source);
}
}
二、自定义【监听器】实现,ApplicationListener 【容器监听者】注册事件
接收消息:
@Component
public class EmailListener implements ApplicationListener<EmailEvent> {
@Override
public void onApplicationEvent(EmailEvent emailEvent) {
Object source = emailEvent.getSource();
/**
* 邮件监听器,一旦有邮件事件,则会触发此处,接收到消息
*/
System.out.println("邮件地址:" + emailEvent.getEmail());
System.out.println("邮件内容:" + emailEvent.getContent());
}
}
三、WebApplicationContext 来推送事件
webapplicationcontext来推送事件消息:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {
@Autowired
private WebApplicationContext webapplicationcontext;
/**
* 测试自定义监听器
*/
@Test
public void listenerTest(){
EmailEvent emailEvent = new EmailEvent("object", "test@qq.com", "邮件内容");
webapplicationcontext.publishEvent(emailEvent);
}
}