Springboot aprender tres: el uso de caché (a)

  1. Perfil: application.properties, por supuesto, también se puede utilizar application.yml.
spring.datasource.url=jdbc:mysql://192.168.155.60:3306/cache
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# 启用 MyBatis 的驼峰命名法
mybatis.configuration.map-underscore-to-camel-case=true

# 打印 sql 日志
logging.level.com.fly.springbootcache.mapper=debug
  1. clase nueva entidad Employee.java. Declaraciones y la propiedad gettery settermétodo.
  2. El establecimiento de Mapperinterfaces y de anotación @Mappernotas, o puede ser Springbootmarcado directamente las clases de inicio @MapperScan("com.xxx")para la digitalización de asignador.
    Y el uso de @EnableCachinganotaciones para abrir el caché.
// 扫描 mapper 接口
@MapperScan(value = "com.fly.springbootcache.mapper")
@EnableCaching // 开启缓存
@SpringBootApplication
public class SpringBootCacheApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootCacheApplication.class, args);
    }
}
  1. En EmployeeMapper.javala adición de unos métodos de interfaz de consulta
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.springframework.cache.annotation.Cacheable;

public interface EmployeeMapper {

    @Options(useGeneratedKeys = true) // 使用自增主键
    @Insert("INSERT INTO employee(lastName, email, gender, d_id) 
    values(#{lastName}, #{email}, #{gender}, #{dId})")
    public void insert(Employee employee);

    @Select("SELECT * FROM employee WHERE id = #{id}")
    public Employee getById(Integer id);
}
  1. Agregar Serviceclase y añada el método de consulta apropiada, el procedimiento anterior y usando las anotaciones @Cacheablepara encontrar el resultado agregado a la caché, por supuesto, se puede colocar en la anotación Mappercapa.
@Service
public class EmployeeService {

    @Autowired
    private EmployeeMapper employeeMapper;

    @Cacheable(cacheNames = "emp") //指定缓存的名字。 默认使用传入的参数作为 key, 即 id。
    public Employee getById(Integer id) {
        return employeeMapper.getById(id);
    }

    public Employee insert(Employee employee) {
        employeeMapper.insert(employee);
        return employee;
    }
}
  1. establecer una controller
@RestController
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping("/emp")
    public Employee insert(Employee employee) {
        return employeeService.insert(employee);
    }

    @GetMapping("/emp/{id}")
    public Employee getById(@PathVariable("id") Integer id) {
        return employeeService.getById(id);
    }
}
  1. Iniciar la aplicación, en el navegador, escriba la ruta de acceso para ver la impresión consola SQL, la primera consulta sería imprimir el sql, la segunda consulta SQL no se imprime, la memoria caché segunda consulta directa en lugar de una consulta de base de datos.
Publicado ocho artículos originales · ganado elogios 3 · Vistas 844

Supongo que te gusta

Origin blog.csdn.net/weixin_40203134/article/details/85058531
Recomendado
Clasificación