这一篇主要是用redis 做个简单的存储。把websocket传过来的消息存起来。
redis
依赖:
org.springframework.boot
spring-boot-starter-data-redis
配置:
redis:
host: xxx
port: 6379
password: xxxx
timeout: 3000ms # 连接超时时间(毫秒)
看一下:
这些之前都做了,没怎么改。
@Configurationpublic classRedisConfig {
@Bean(name= "redisTemplate")public RedisTemplateredisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate redisTemplate = new RedisTemplate<>();//参照StringRedisTemplate内部实现指定序列化器
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(keySerializer());
redisTemplate.setHashKeySerializer(keySerializer());
redisTemplate.setValueSerializer(valueSerializer());
redisTemplate.setHashValueSerializer(valueSerializer());returnredisTemplate;
}private RedisSerializerkeySerializer(){return newStringRedisSerializer();
}//使用Jackson序列化器
private RedisSerializervalueSerializer(){return newGenericJackson2JsonRedisSerializer();
}
}
websocket引入redis
这是在网上找的一段代码:
@Repositorypublic class SpringUtils implementsBeanFactoryPostProcessor {private static ConfigurableListableBeanFactory beanFactory; //Spring应用上下文环境
@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throwsBeansException {
SpringUtils.beanFactory=beanFactory;
}public staticConfigurableListableBeanFactory getBeanFactory() {returnbeanFactory;
}/*** 获取对象
*
*@paramname
*@returnObject 一个以所给名字注册的bean的实例
*@throwsorg.springframework.beans.BeansException
**/@SuppressWarnings("unchecked")public static T getBean(String name) throwsBeansException {return(T) getBeanFactory().getBean(name);
}/*** 获取类型为requiredType的对象
*
*@paramclz
*@return*@throwsorg.springframework.beans.BeansException
**/
public static T getBean(Class clz) throwsBeansException {
T result=(T) getBeanFactory().getBean(clz);returnresult;
}/*** 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*
*@paramname
*@returnboolean*/
public static booleancontainsBean(String name) {returngetBeanFactory().containsBean(name);
}/*** 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
*
*@paramname
*@returnboolean
*@throwsorg.springframework.beans.factory.NoSuchBeanDefinitionException
**/
public static boolean isSingleton(String name) throwsNoSuchBeanDefinitionException {returngetBeanFactory().isSingleton(name);
}/***@paramname
*@returnClass 注册对象的类型
*@throwsorg.springframework.beans.factory.NoSuchBeanDefinitionException
**/
public static Class> getType(String name) throwsNoSuchBeanDefinitionException {returngetBeanFactory().getType(name);
}/*** 如果给定的bean名字在bean定义中有别名,则返回这些别名
*
*@paramname
*@return*@throwsorg.springframework.beans.factory.NoSuchBeanDefinitionException
**/
public static String[] getAliases(String name) throwsNoSuchBeanDefinitionException {returngetBeanFactory().getAliases(name);
}
}
View Code
BeanFactoryPostProcessor(Spring初始化bean时对外暴露的扩展点.)
这个地方获取用到的service
收到消息后把消息存起来。这里因为我前台传过来的是。。{type:"123"} 这种类型的。
service 大概就是酱紫:
下一篇继续说:
@
原文:https://www.cnblogs.com/DarGi2019/p/13952755.html