struts2+spring使用redis的发布订阅功能

写在前面:前几天项目中实现了redis的发布订阅功能,才没两天居然忘得差不多了,赶紧整理记录一下!

环境

jdk1.8
tomcat8
IDEA
!默认大家已经集成了redis,redis相关配置就不说了。

发送消息的PubServiceImpl.java

@Service
public class PubServiceImpl implements PubService {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private ChannelTopic channelTopic;


    public void Publisher(String message) {
        stringRedisTemplate.convertAndSend(channelTopic.getTopic(), message);
    }
}

接受消息的SubServiceImpl.java

@Service
public class SubServiceImpl  implements SubService {
//    @Autowired
//    private ChannelTopic channelTopic;



    @Override
    public void onMessage(Message message, byte[] pattern) {
       //System.out.println("------channelTopic-------" + channelTopic.getTopic());
        String s = message.toString();
        String xiaoxi = "";
        String channel = "";
        String[] split = s.split(":");
        if(split!=null&&split.length==2){
            channel=split[0];
            xiaoxi=split[1];
        }
       // System.out.println(channel+","+xiaoxi);
        //收到消息之后可以去做你想做的事
       
    }

}

xml配置


	
		
	
	
	
	
		
		
			
				
					
				
			
		
	

使用过程中可能会出现消息频道无法注入的情况,这个时候就需要一个扫包的配置


	

我们还需要给redis发布订阅配置一个stringRedisTemplate

  
        
        
            
        
        
            
        
    

stringRedisTemplate和redisTemplate的区别自行百度

使用

使用就很简单了只要需要的地方注入pubService

 pubService.Publisher(“需要发送的消息”);

即可在subService中的Onmessage方法接收到消息。

  • 这篇写的很仓促,质量很差,如果有什么问题,看到的可以麻烦指出来,哈哈。
  • 刚写博客很多地方有不足的地,将就着看吧先,会慢慢改进的。其实就是菜= =

你可能感兴趣的:(redis相关,redios,spring,struts2,发布订阅)