7. Implement event
Trong phần này, chúng ta sẽ tìm hiểu cách triển khai sự kiện trong ứng dụng Spring Boot của chúng ta. Sự kiện cho phép chúng ta phản ứng với các hành động xảy ra trong ứng dụng một cách linh hoạt và mở rộng.
Khai báo sự kiện
package com.example.demo.events;
import com.example.demo.entities.Student;
import lombok.Value;
@Value
public class StudentUpdatedEvent {
private final long studentId;
private final Student updatedStudent;
}
package com.example.demo.events;
import lombok.Value;
@Value
public class StudentDeletedEvent {
private final long studentId;
}
Lắng nghe sự kiện
package com.example.demo.events;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
@Component
public class StudentEventListener {
@EventListener
public void handleStudentUpdatedEvent(StudentUpdatedEvent event) {
System.out.println("🔥 StudentEventListener handleStudentUpdatedEvent");
System.out.printf("🔥 Student with ID %d has been updated: %s%n",
event.getStudentId(),
event.getUpdatedStudent().getName());
// Here you can add additional logic, such as sending notifications,
}
@EventListener
public void handleStudentDeletedEvent(StudentDeletedEvent event) {
System.out.println("🔥 StudentEventListener handleStudentDeletedEvent");
System.out.printf("🔥 Student with ID %d has been deleted", event.getStudentId());
// Here you can add additional logic, such as sending notifications,
}
}
Phát sự kiện
@Autowired
private final ApplicationEventPublisher eventPublisher;
// Phát sự kiện StudentUpdatedEvent
eventPublisher.publishEvent(new StudentUpdatedEvent(updatedStudent.getId(), updatedStudent));