Springboot apprendre trois: l'utilisation du cache (a)

  1. Profil: application.properties, bien sûr, peut également être utilisé 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. La nouvelle entité classe Employee.java. Les déclarations et les biens getteret setterméthode.
  2. La mise en place d' Mapperinterfaces et d' annotation des @Mappernotes, ou peut être Springbootmarqué directement les classes de démarrage @MapperScan("com.xxx")pour la numérisation cartographe.
    Et utiliser des @EnableCachingannotations pour ouvrir le cache.
// 扫描 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.javaajoutant des méthodes d'interface de requête
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. Ajouter Serviceclasse et ajoutez la méthode de requête appropriée, la méthode ci - dessus et en utilisant les annotations @Cacheablepour trouver le résultat ajouté au cache, bien sûr, peut être placé sur l'annotation Mappercouche.
@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. Mettre en place un 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. Démarrez l'application, dans le navigateur entrez le chemin d'accès pour afficher l'impression de la console SQL, la première requête imprimerait le sql, la seconde requête n'est pas imprimé sql, votre cache deuxième requête directe au lieu d'une requête de base de données.
Publié huit articles originaux · louange gagné 3 · Vues 844

Je suppose que tu aimes

Origine blog.csdn.net/weixin_40203134/article/details/85058531
conseillé
Classement