创建发布者和订阅者
MessageSubscriber
import org.redisson.api.RTopic;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessageSubscriber {
@Autowired
private RedissonClient redissonClient;
@PostConstruct
public void subscribe() {
RTopic<String> topic = redissonClient.getTopic("myTopic");
topic.addListener(message -> System.out.println("Received message: " + message));
}
}
注:
1.@PostConstruct 注解
@PostConstruct 注解用于标记在依赖注入完成后需要执行的方法,以进行初始化工作。这个方法会在类的构造函数调用之后,依赖注入完成之后被自动调用。
2. RTopic 支持实体类
MessagePublisher
import org.redisson.api.RTopic;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MessagePublisher {
@Autowired
private RedissonClient redissonClient;
public void publish(String message) {
RTopic<String> topic = redissonClient.getTopic("myTopic");
topic.publish(message);
}
}
触发订阅
确保在Spring Boot应用启动时或某个特定时间点上,订阅者已经订阅了相应的主题。可以通过在Spring Boot的启动类中调用MessageSubscriber的subscribe方法来实现,或者通过其他方式(如事件监听器、@PostConstruct注解的初始化方法等)来触发订阅。