?? Recomendación de columna: Spring Boot integra componentes de terceros
?? Serie de artículos: [Inicio rápido] Use SpringBoot 2.X + Mybatis-Plus para implementar fácilmente CRUD (actualización continua...)
?? Introducción de columna:
En la práctica diaria desarrollo, usaremos el marco de proyecto de construcción rápida de nivel empresarial Spring Boot para integrar y desarrollar varios componentes. Esta columna resumirá los pasos detallados del uso de Spring Boot para integrarse con componentes de terceros de uso común. Bienvenido a intercambiar y aprender. ???
Directorio de artículos
- 1. Preparación ambiental
- 2. Cree el proyecto Spring Boot
- 3. Introducir la dependencia de Redis
- Cuatro, configuración relacionada con los rojos
- 5. Agregue la clase de configuración de Redis
- Seis, pruébalo
En el desarrollo diario, además de usar Spring Boot
este marco de trabajo de nivel empresarial para construir proyectos rápidamente, con el aumento sustancial en la cantidad de datos comerciales, la presión sobre la base de datos de metadatos ha aumentado exponencialmente. En este contexto, Redis
esta NoSQL
base de datos ya es una parte indispensable de toda la arquitectura del proyecto. Saber Spring Boot
integrar Redis
es una habilidad necesaria para los desarrolladores de hoy. A continuación, se describirán en detalle los pasos de integración.
1. Preparación ambiental
Antes de comenzar el desarrollo, debemos preparar algunas configuraciones de entorno:
- jdk 1.8 u otra versión superior
- Herramientas de desarrollo IDEA
- Administrar dependencias Maven
- Entorno redis, se recomienda construir un entorno redis en el sistema linux
2. Cree el proyecto Spring Boot
Abra idea -> file -> Nwe -> Project
, como se muestra en la figura, verifique y complete la información de configuración relevante:
Compruebe algunas configuraciones dependientes iniciales:
La inicialización del proyecto Spring Boot está completa.
3. Introducir la dependencia de Redis
Después de compilar el proyecto Spring Boot, debe pom.xml
introducir redis
las dependencias relacionadas en el archivo
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- spring2.X集成redis所需common-pool2-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>
Cuatro, configuración relacionada con los rojos
Después de introducir dependencias relacionadas con redis en el proyecto, debe configurar redis y application.properties
configurar redis:
# Redis服务器地址
spring.redis.host=自己搭建的redis服务器的 IP
# Redis服务器连接端口
spring.redis.port=6379
# Redis数据库索引(默认为0)
spring.redis.database= 0
# 连接超时时间(毫秒)
spring.redis.timeout=1800000
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.lettuce.pool.max-active=20
# 最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.lettuce.pool.max-idle=5
# 连接池中的最小空闲连接
spring.redis.lettuce.pool.min-idle=0
5. Agregue la clase de configuración de Redis
Después de completar la configuración relevante de Redis, agregue la clase de configuración de Redis (lista para usar):
package com.zhao.demo.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
/**
* @author xiaoZhao
* @date 2022/9/6
* @describe
*/
@EnableCaching
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
template.setConnectionFactory(factory);
//key序列化方式
template.setKeySerializer(redisSerializer);
//value序列化
template.setValueSerializer(jackson2JsonRedisSerializer);
//value hashmap序列化
template.setHashValueSerializer(jackson2JsonRedisSerializer);
return template;
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory factory) {
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
//解决查询缓存转换异常的问题
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
// 配置序列化(解决乱码的问题),过期时间600秒
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofSeconds(600))
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
.disableCachingNullValues();
RedisCacheManager cacheManager = RedisCacheManager.builder(factory)
.cacheDefaults(config)
.build();
return cacheManager;
}
}
Seis, pruébalo
Después de compilar todas las dependencias y configuraciones del entorno, pruébelo.
① Primero, asegúrese de que el Redis
servidor instalado haya iniciado el servicio Redis
② Para escribir controller
una clase, la premisa debe introducir Spring Boot Web
la dependencia de:
package com.zhao.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author xiaoZhao
* @date 2022/9/6
* @describe
*/
@RestController
@RequestMapping("/redistest")
public class RedisTestController {
@Autowired
private RedisTemplate redisTemplate;
@GetMapping
public String testRedis(){
// 设置值到reids
redisTemplate.opsForValue().set("name","jack");
// 从redis中获取值
String name = (String)redisTemplate.opsForValue().get("name");
return name;
}
}
③ Inicie el proyecto Spring Boot y envíe una solicitud a la interfaz en el navegador:
El proyecto se inicia correctamente y /redistest
se envía una solicitud a la interfaz.
La solicitud se envía correctamente, se obtienen los datos y la prueba es exitosa. Hasta el momento, se han completado todos los pasos de integración de Redis con Spring Boot.
por fin
Sé que la mayoría de los ingenieros de Java de nivel junior y medio quieren mejorar sus habilidades y, a menudo, intentan crecer por sí mismos o inscribirse en clases.Sin embargo, las tasas de matrícula de casi 10.000 yuanes para las instituciones de formación son realmente estresantes. ¡El efecto del autoaprendizaje es ineficiente y prolongado, y es fácil tocar el techo y estancarse en la tecnología!
Por lo tanto, recopilé y clasifiqué un " Conjunto completo de materiales de aprendizaje para el desarrollo de Java " y se lo di a todos. La intención original también es muy simple, es decir, espero ayudar a los amigos que quieren aprender por sí mismos pero no saber por dónde empezar y, al mismo tiempo, reducir la carga de todos.
El editor ha cifrado: aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==Por razones de seguridad, codificamos el sitio web a través de base64 y usted puede decodificar la URL a través de base64.