苍穹外卖--springCache-@CachePut使用
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
package com.inmind;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootApplication
|
||||
@EnableCaching
|
||||
public class CacheDemoApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(CacheDemoApplication.class,args);
|
||||
log.info("项目启动成功...");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.inmind.config;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.service.ApiInfo;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
|
||||
@Configuration
|
||||
@Slf4j
|
||||
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
|
||||
|
||||
/**
|
||||
* 生成接口文档配置
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public Docket docket(){
|
||||
log.info("准备生成接口文档...");
|
||||
|
||||
ApiInfo apiInfo = new ApiInfoBuilder()
|
||||
.title("接口文档")
|
||||
.version("2.0")
|
||||
.description("接口文档")
|
||||
.build();
|
||||
|
||||
Docket docket = new Docket(DocumentationType.SWAGGER_2)
|
||||
.apiInfo(apiInfo)
|
||||
.select()
|
||||
//指定生成接口需要扫描的包
|
||||
.apis(RequestHandlerSelectors.basePackage("com.inmind.controller"))
|
||||
.paths(PathSelectors.any())
|
||||
.build();
|
||||
|
||||
return docket;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置静态资源映射
|
||||
* @param registry
|
||||
*/
|
||||
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
log.info("开始设置静态资源映射...");
|
||||
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
||||
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.inmind.controller;
|
||||
|
||||
import com.inmind.entity.User;
|
||||
import com.inmind.mapper.UserMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.CachePut;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
@Slf4j
|
||||
public class UserController {
|
||||
|
||||
@Autowired
|
||||
private UserMapper userMapper;
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* 业务:在新增用户时,将用户信息缓存到redis中
|
||||
*
|
||||
* Spring Expression Language(SpEL)
|
||||
*
|
||||
*/
|
||||
@PostMapping
|
||||
// @CachePut(cacheNames = "userCache",key = "#user.id")//如果使用springCache缓存数据,key的生成的规则:userCache::动态ID
|
||||
@CachePut(cacheNames = "userCache",key = "#result.id")//对象导航,result就表示该方法的返回值!!!
|
||||
// @CachePut(cacheNames = "userCache",key = "#p0.id")//p0:param0 参数列表中第一个参数
|
||||
// @CachePut(cacheNames = "userCache",key = "#a0.id")//a0:argment0 参数列表中第一个参数
|
||||
// @CachePut(cacheNames = "userCache",key = "#root.args[0].id")//root.args[0]:save方法的参数列表的第0个参数
|
||||
public User save(@RequestBody User user){
|
||||
userMapper.insert(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteById(Long id){
|
||||
userMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delAll")
|
||||
public void deleteAll(){
|
||||
userMapper.deleteAll();
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public User getById(Long id){
|
||||
User user = userMapper.getById(id);
|
||||
return user;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.inmind.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class User implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
private int age;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.inmind.mapper;
|
||||
|
||||
import com.inmind.entity.User;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@Mapper
|
||||
public interface UserMapper{
|
||||
|
||||
@Insert("insert into user(name,age) values (#{name},#{age})")
|
||||
@Options(useGeneratedKeys = true,keyProperty = "id")
|
||||
void insert(User user);
|
||||
|
||||
@Delete("delete from user where id = #{id}")
|
||||
void deleteById(Long id);
|
||||
|
||||
@Delete("delete from user")
|
||||
void deleteAll();
|
||||
|
||||
@Select("select * from user where id = #{id}")
|
||||
User getById(Long id);
|
||||
}
|
||||
21
springcache-demo - inmind/src/main/resources/application.yml
Normal file
21
springcache-demo - inmind/src/main/resources/application.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
server:
|
||||
port: 8888
|
||||
spring:
|
||||
datasource:
|
||||
druid:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://localhost:3306/spring_cache_demo?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: 1234
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
# password: 123456
|
||||
database: 1
|
||||
logging:
|
||||
level:
|
||||
com:
|
||||
inmind:
|
||||
mapper: debug
|
||||
service: info
|
||||
controller: info
|
||||
Reference in New Issue
Block a user