Open chengfengjie opened 6 years ago
pom.xml添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
application.properties配置redis相关
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
创建序列化类:
public class RedisObjectSerializer implements RedisSerializer<Object> {
static final byte[] EMPTY_ARRAY = new byte[0];
private Converter<Object, byte[]> serializer = new SerializingConverter();
private Converter<byte[], Object> deserializer = new DeserializingConverter();
@Override
public byte[] serialize(Object o) throws SerializationException {
if (o == null) {
return EMPTY_ARRAY;
}
try {
return serializer.convert(o);
} catch (Exception e) {
throw new SerializationException(e.getLocalizedMessage());
}
}
@Override
public Object deserialize(byte[] bytes) throws SerializationException {
if (bytes == null || bytes.length == 0) {
return null;
}
try {
return deserializer.convert(bytes);
} catch (Exception e) {
throw new SerializationException(e.getLocalizedMessage());
}
}
}
配置序列化bean
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Map> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Map> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new RedisObjectSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new RedisObjectSerializer());
return template;
}
}
使用,如果数据已经在redis中,直接获取,否则从数据库获取然后存入redis中
@Service
public class EstateService {
@Autowired
private EstateRepository estateRepository;
@Autowired
private RedisTemplate<String, Map> redisTemplate;
public Object queryEstateById(Integer estateID) {
Object val = redisTemplate.opsForHash().get("estate", estateID.toString());
if (val == null) {
Map estateInfo = estateRepository.queryEstateById(estateID);
redisTemplate.opsForHash().put("estate", estateID.toString(), estateInfo);
return estateInfo;
} else {
return val;
}
}
}
sprint-boot 集成mybatis
maven添加依赖如下
application.properties
配置文件中配置如下如果mapper.xml文件是存放在java包中的,那么需要在pom.xml中配置资源路径,否则会报错找不到mapper.xml,配置pom.xml如下:
一个简单的mapper如下:
Repository如下: