Spring Boot 如何引入redis并实际运用
1.增加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.程序入口初始化Bean
import org.springframework.web.client.RestTemplate; public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); //换上fastjson List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters(); Iterator<HttpMessageConverter<?>> iterator = messageConverters.iterator(); while (iterator.hasNext()) { HttpMessageConverter<?> converter = iterator.next(); //原有的String是ISO-8859-1编码 去掉 if (converter instanceof StringHttpMessageConverter) { iterator.remove(); } //由于系统中默认有jackson 在转换json时自动会启用 但是我们不想使用它 可以直接移除 if (converter instanceof GsonHttpMessageConverter || converter instanceof MappingJackson2HttpMessageConverter) { iterator.remove(); } } messageConverters.add(new StringHttpMessageConverter(Charset.forName("utf-8"))); FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); List supportedMediaTypes = new ArrayList<>(); supportedMediaTypes.add(MediaType.APPLICATION_JSON); supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML); supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED); supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM); supportedMediaTypes.add(MediaType.APPLICATION_PDF); supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML); supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML); supportedMediaTypes.add(MediaType.APPLICATION_XML); supportedMediaTypes.add(MediaType.IMAGE_GIF); supportedMediaTypes.add(MediaType.IMAGE_JPEG); supportedMediaTypes.add(MediaType.IMAGE_PNG); supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM); supportedMediaTypes.add(MediaType.TEXT_HTML); supportedMediaTypes.add(MediaType.TEXT_MARKDOWN); supportedMediaTypes.add(MediaType.TEXT_PLAIN); supportedMediaTypes.add(MediaType.TEXT_XML); fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); messageConverters.add(fastJsonHttpMessageConverter); return restTemplate; } }
3.书写工具类
RedisCacheUtils
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; @Component public class RedisCacheUtils { @Autowired private RedisTemplate redisTemplate;// 这块要注意一定不要加泛型注入 public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } }
4.接口中具体使用
public class xxx { @Autowired private RedisCacheUtils redisCacheUtil; public void method(){ redisCacheUtil.set("key", "value"); Object te = redisCacheUtil.get("key"); } }