Heim  >  Artikel  >  Datenbank  >  Detailliertes Tutorial zur Integration des Redis-Frameworks zum Erstellen von SpringBoot2.X

Detailliertes Tutorial zur Integration des Redis-Frameworks zum Erstellen von SpringBoot2.X

coldplay.xixi
coldplay.xixinach vorne
2020-12-08 17:46:433166Durchsuche

Redis-Datenbank-TutorialDie Kolumne stellt das Tutorial zum Erstellen von SpringBoot2 vor. Die Resonanz auf diesen Artikel war ziemlich enthusiastisch. Ich habe das Gefühl, dass es allen recht gut geholfen hat, und ich kann davon ausgehen, dass ich mein Ziel erreicht habe Zufälligerweise ist das heutige Geschäftsmodul Springboot, das Redis integriert. Da ich es schon einmal gemacht habe, kann ich den Code nach dem Lebenslauf lesen, also habe ich mehr Zeit, mich mit der Code-Implementierung von Springboot zu befassen, die Redis integriert . Von der Projektkonstruktion bis zur Quellcode-Implementierung ist alles unten aufgeführt. Ich glaube, es wird für Sie nützlich sein. Okay, fangen wir ohne weiteres an Eigener PC. Persönliches öffentliches Konto: Java Architect Alliance, täglich aktualisierte technische Artikel

1. Verwenden Sie Spring Initializr, um ein Projekt-Webprojekt zu erstellen Benennen Sie die Gruppe und das Artefakt in der pom.xml-Datei lauten wie folgtDetailliertes Tutorial zur Integration des Redis-Frameworks zum Erstellen von SpringBoot2.X

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.heny</groupId>
	<artifactId>spring-boot-redis</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>spring-boot-redis</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.1</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
5. Fügen Sie Redis zum pom.xml-Dateistarter hinzu
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-redis</artifactId>
	</dependency>

6. Um eine JavaBean zum Kapseln von Datenbankdaten zu erstellen, müssen Sie Serializable implementieren

package com.henya.springboot.bean;

import java.io.Serializable;

public class Employee implements Serializable{
	
	private Integer id;
	private String lastName;
	private String email;
	private Integer gender; //性别 1男 0女
	private Integer dId;
	
	
	public Employee() {
		super();
	}

	
	public Employee(Integer id, String lastName, String email, Integer gender, Integer dId) {
		super();
		this.id = id;
		this.lastName = lastName;
		this.email = email;
		this.gender = gender;
		this.dId = dId;
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getGender() {
		return gender;
	}
	public void setGender(Integer gender) {
		this.gender = gender;
	}
	public Integer getdId() {
		return dId;
	}
	public void setdId(Integer dId) {
		this.dId = dId;
	}
	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + ", dId="
				+ dId + "]";
	}
}

Hinweis:
Sie müssen die Serializable-Schnittstelle implementieren, wenn Sie JavaBean-Objekte schreiben, andernfalls wird der folgende Fehler gemeldet:

Deserialisierung nicht möglich; verschachtelte Ausnahme ist org.springframework.core.serializer.support.SerializationFailedException

7. Integrieren Sie die Mybatis-Betriebsdatenbank und konfigurieren Sie die Datenquelleninformationen in der Konfigurationsdatei application.properties

#serverTimezone用于指定时区,不然会报错
spring.datasource.url=jdbc:mysql://localhost:3306/cache?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

# 开启驼峰命名法规则
mybatis.configuration.map-underscore-to-camel-case=true
#日志级别
logging.level.com.henya.springboot.mapper=debug

8. Verwenden Sie die annotierte Version von Mybatis, um Mapper zu erstellen. MapperScan-Annotation zum Scannen der Schnittstelle, auf der sich der Mapper befindet. Sie müssen sie nur zur Hauptprogrammklasse hinzufügen. Verwenden Sie außerdem @EnableCaching, um das Caching zu aktivieren.

package com.henya.springboot.mapper;


import com.henya.springboot.bean.Employee;
import org.apache.ibatis.annotations.*;

@Mapper
public interface EmployeeMapper {

 @Select("SELECT * FROM employee WHERE id=#{id}")
 public Employee getEmpById(Integer id);

 @Update("UPDATE employee SET lastName=#{lastName},email=#{email},gender=#{gender},d_id=#{dId} WHERE id=#{id}")
 public void updateEmp(Employee employee);

 @Delete("DELETE FROM emlpoyee WHERE id=#{id}")
 public void delEmpById(Integer id);

 @Insert("INSERT INTO employee(lastName, email, gender, d_id) VALUES (#{lastName}, #{email}, #{gender}, #{dId})")
 public Employee insertEmp(Employee employee);

 @Select("SELECT * FROM employee WHERE lastName=#{lastName}")
 public Employee getEmpByLastName(String lastName);
}

9. Sie können auch die Testklasse verwenden, um zum Testen auf http://localhost:8080/emp/1 zuzugreifen. Beim ersten Zugriff wird die Konsole aufgefordert, mit der Abfrage von Mitarbeiter Nr. 1 zu beginnen die Figur.

2. Beim erneuten Zugriff ist kein SQL-Protokoll in der Konsole vorhanden, wie im Bild gezeigt.

3. Wenn Sie zu diesem Zeitpunkt das RedisDesktopManager-Tool zum Anzeigen von Redis verwenden, sind Daten vorhanden und der Cache-Name ist emp, wie im Bild gezeigt

Nur das emp-Objekt wird serialisiert. Wenn wir uns den Quellcode ansehen, können wir sehen, dass Redis standardmäßig Jdk für die Serialisierung verwendet.


@MapperScan("com.henya.springboot.mapper")
@SpringBootApplication
@EnableCaching //开启缓存
public class SpringBootRedisApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootRedisApplication.class, args);
	}
}

Schauen Sie sich die folgenden Implementierungen der RedisSerializer-Schnittstelle an:

Was wir häufig verwenden, ist die Serialisierung im JSON-Format. Sie müssen RedisCacheManager jedoch anpassen.

3. Passen Sie RedisCacheManager an

package com.henya.springboot.service;
import com.henya.springboot.bean.Employee;
import com.henya.springboot.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.*;
import org.springframework.stereotype.Service;

@CacheConfig(cacheNames = "emp") //抽取缓存的公共配置
@Service
public class EmployeeService {
 @Autowired
 EmployeeMapper employeeMapper;

 /**
 * @param id
 * @return
 */
 @Cacheable(cacheNames = {"emp"},keyGenerator = "myKeyGenerator")
 public Employee getEmpById(Integer id) {
 System.err.println("开始查询"+ id +"号员工");
 Employee employee = employeeMapper.getEmpById(id);
 return employee;
 }

 /**
 * @CachePut:既调用方法(这个方法必须要执行),又更新缓存数据
 * @param employee
 * @return
 */
 @CachePut(value = "emp",key = "#result.id")
 public Employee updateEmp(Employee employee){
 System.err.println("开始更新" + employee.getId() + "号员工");
 employeeMapper.updateEmp(employee);
 return employee;
 }

 /**
 * @CacheEvict:缓存清除
 * @param id
 */
 @CacheEvict(value = "emp",beforeInvocation = true)
 public void deleteEmp(Integer id){
 System.err.println("删除" + id + "员工");
 int i = 10/0;
 }

Zu diesem Zeitpunkt werden die zwischengespeicherten Daten in Redis im Json-Format serialisiert, wie in der Abbildung gezeigt.

Das obige ist der detaillierte Inhalt vonDetailliertes Tutorial zur Integration des Redis-Frameworks zum Erstellen von SpringBoot2.X. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen