springboot中的springmvc其他注解
@RestController :相当于控制层类上加@Controller+方法上加@ResponseBody,意味着当前控制层类中所有的方法返回的是json对象
@GetMapping(value="/student"):相当于@RequestMapping(value="/student",method=RequestMethod.GET)
该注解通常在查询数据的时候使用
@PostMapping(value="/student"):相当于@RequestMapping(value="/student",method=RequestMethod.POST)
该注解通常在新增数据的时候使用
@DeleteMapping(value="/student"):相当于@RequestMapping(value="/student",method=RequestMethod.DELETE)
该注解通常在删除数据的时候使用
@PutMapping(value="/student"):相当于@RequestMapping(value="/student",method=RequestMethod.PUT)
该注解通常在更新数据的时候使用
(通常Post用的居多)
认识RESTFull
一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服务器交互时的架构理念和设计原则,基于这种理念和原则设计的接口可以更简洁,更有层次,REST这个词,是 Roy Thomas Fielding 在他 2000 年的博士论文中提出的。任何的技术都可以实现这种理念,如果一个架构符合 REST 原则,就称它为 RESTFul 架构
比如我们要访问一个 http 接口:http://localhost:8080/boot/order?id=1021&status=1
采用 RESTFul 风格则 http 地址为:http://localhost:8080/boot/order/1021/1
举例:
@RestController
public class StudentController {
@RequestMapping(value = "/student")
public Object student(Integer id,Integer age) {
Student student = new Student();
student.setId(id);
student.setAge(age);
return student;
}
// @RequestMapping(value = "/student/detail/{id}/{age}")
@GetMapping(value = "/student/detail/{id}/{age}")
public Object student1(@PathVariable("id") Integer id,
@PathVariable("age") Integer age) {
Map<String,Object> retMap = new HashMap<>();
retMap.put("id",id);
retMap.put("age",age);
return retMap;
}
// @RequestMapping(value = "/student/detail/{id}/{status}")
@DeleteMapping(value = "/student/detail/{id}/{status}")
public Object student2(@PathVariable("id") Integer id,
@PathVariable("status") Integer status) {
Map<String,Object> retMap = new HashMap<>();
retMap.put("id",id);
retMap.put("status",status);
return retMap;
}
//以上代码student1和student2会出现请求路径冲突问题
//通常在RESTful风格中方法的请求方式会按增删改查的请求方式来区分
//修改请求路径
//RESUful请求风格要求路径中使用的单词都是名称,最好不要出现动词
@DeleteMapping(value = "/student/{id}/detail/{city}")
public Object student3(@PathVariable("id") Integer id,
@PathVariable("city") Integer city) {
Map<String,Object> retMap = new HashMap<>();
retMap.put("id",id);
retMap.put("city",city);
return retMap;
}
@PostMapping(value = "/student/{id}")
public String addStudent(@PathVariable("id") Integer id) {
return "add student ID:" + id;
}
@PutMapping(value = "/student/{id}")
public String updateStudent(@PathVariable("id") Integer id) {
return "update Student ID:" +id;
}
}
-
RESTful 原则
➢ 增 post 请求、删 delete 请求、改 put 请求、查 get 请求
➢ 请求路径不要出现动词
例如:查询订单接口
/boot/order/1021/1(推荐)
/boot/queryOrder/1021/1(不推荐)
➢ 分页、排序等操作,不需要使用斜杠传参数
例如:订单列表接口
/boot/orders?page=1&sort=desc
一般传的参数不是数据库表的字段,可以不采用斜杠
springboot集成redis
a.添加操作redis数据类型的依赖
<!--springboot集成Redis的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
b.在springboot核心配置文件中添加redis的配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=1234
#没设置密码就不要写
controller
@Controller
public class SController {
@Autowired
private StudentService studentService;
@RequestMapping(value="/put")
public @ResponseBody Object put(String key,String value){
studentService.put(key, value);
return "成功放入";
}
@RequestMapping(value="/get")
public @ResponseBody String get(){
String value=studentService.get("utkvrjan");
return value;
}
}
service
public interface StudentService {
void put(String key,String value);
String get(String key);
}
serviceImpl
@Service
public class StudentServiceImpl implements StudentService {
@Autowired
private RedisTemplate<Object,Object> redisTemplate;
@Override
public void put(String key, String value) {
redisTemplate.opsForValue().set(key,value);
}
@Override
public String get(String key) {
return (String)redisTemplate.opsForValue().get(key);
}
}
RedisTemplate是spring集成redis配的对象
opsForValue(): ops是operations的缩写,opsForValue操作string类型,opsForZSet操作zset类型…