Red de conocimiento informático - Problemas con los teléfonos móviles - uso básico de springboot @Cacheable

uso básico de springboot @Cacheable

org.springframework.boot

spring-boot-starter-cache

@Cacheable?:

Resultados del método de caché (utilizado principalmente para el método GET)

cacheNames/value: especifique la clave primaria de caché (Cacheable ) nombre El nombre de la clave

: utiliza la clave para almacenar en caché los datos, admite la sintaxis spEl

keyGenerator: generador de claves. Entra en conflicto con el atributo clave, se debe implementar un keyGenerator personalizado

org.springframework.cache.interceptor.KeyGenerator, el valor predeterminado utiliza el generador de valores de parámetros predeterminado.

cacheManager: especifica el administrador de caché, o cacheResolver especifica el solucionador de búsqueda cacheResolver: y

condición de CacheManager: especifica la condición que se debe cumplir antes del almacenamiento en caché, en lugar de A MENOS QUE. Puede utilizar la sintaxis spEL

a menos que: niegue el almacenamiento en caché y no almacene en caché los resultados cuando se cumplan las condiciones. Puede obtener el resultado (#resultado) para juzgar. Admite sintaxis spEL

sincronización: si debe estar en modo asíncrono. El valor predeterminado es falso

@CachePut: primero llama al método y luego almacena en caché el resultado. (Se usa principalmente para el método PUT), debe prestar atención a la configuración clave @CacheEvict: de forma predeterminada, el método se llama primero y luego se elimina el caché (se usa principalmente para el método DELETE) allEntries: elimina todos los valores ​​en el componente de caché: elimine el componente de caché (especificado por cacheNames/value ) en beforeInvocation: elimine el valor antes de que se ejecute el método. @Caching: anotaciones combinadas. Para casos complejos @CacheConfig: en la clase cargada, se utiliza para configurar el caché *** ¿Hay algún atributo?

Varios atributos:

cacheNames/values: especifica el nombre del componente de caché utilizado para colocar los resultados devueltos por el método; está en forma de matriz y pueden tener múltiples cachés; ser especificado

clave: la clave utilizada para almacenar en caché los datos se puede especificar junto con ella.

¿Los parámetros del método se utilizan de forma predeterminada?

Puede representarse mediante la expresión spEL; #id, por ejemplo (getEmp[1]); [0 ]

keyGenerator: generador de claves; puede especificar el ID del componente del generador de claves usted mismo

key/keyGenerator: use uno u otro (clase autoconfigurada)

cacheManager: especifique qué administrador de caché usar; o use cacheResolver para especificar la condición de resolución: especifique el almacenamiento en caché si se cumple la condición, por ejemplo: condition = "#a0 >1"; ?Caché solo si el valor del primer parámetro es mayor que 1

a menos que: niegue el almacenamiento en caché; cuando la condición especificada por less es verdadera, el valor de retorno del método no se almacena en caché y el resultado se puede obtener para juzgar;

Por ejemplo: a menos que = "#a0": si el primer valor del parámetro es 2, el resultado no se almacenará en caché a menos que = "#result == null"? El resultado está vacío y la escritura fusionada no se almacenará en caché:

@Cacheable (cacheNames = {"emp"},keyGenerator = "myKeyGenerator",condition = "#a0>1",a menos que =?"#a0==2") Indica? que el nombre de la caché que se colocará es emp, y la clave se configura mediante la generación de la clase MyKeyGenerator, se almacena en caché cuando el primer parámetro es mayor que 1 y no se almacena en caché cuando el primer parámetro es igual a 2

Sincronización: si para usar el modo asíncrono (A MENOS QUE no admita el modo asíncrono en este caso)

//@Cacheable( cacheNames = {"emp"},key = "#root.methodName+'['+#id+'] '")

public Empleado getEmp(Integer id ){

System.out.println("Consultando el número de "+id+" Empleado");

Empleado emp =? empleadoMapper.getEmpById(id);

return?emp;

}

En este momento, cuando la identificación es 1, el valor de clave es getEmp[1]

@Configuration

public class MyCacheConfig {

@Bean("myKeyGenerator")

public KeyGenerator keyGenerator (){

?return? new KeyGenerator( ){

@Override

objeto público generar(Objeto o, Método método, Objeto... valor aquí está getEmp[[1]]