暂时只是先写一些问题合集,并不系统介绍 某些 功能。
1、import static 包是不会自动导入的吗??
在写test文件的时候,需要 import static org.hamcrest.Matchers.equalTo;
但是,却不会自动导入。
2、controller层的增删改查,针对的是一些数据结构的操作,eg:针对Map<User,Long>这一数据结构。
eg:
@RestController
public class UserController {
//一种数据结构,Map映射 ,全局变量static
static Map<Long,User> users= Collections.synchronizedMap(new HashMap<Long,User>());
//增删改查
//@ModelAttribute是针对 类的
//@PathVariable是针对 单独的一个参数的
//返回所有的数据
@RequestMapping(value="/",method=RequestMethod.GET)
public List<User> getUserList()
{
List<User> r= new ArrayList<User>(users.values()); //为什么不直接 return user呢?? user本身是一个Map,
return r;
}
//增
@RequestMapping(value="/",method=RequestMethod.POST)
public String postUser(@ModelAttribute User user)
{
users.put(user.getId(),user);
return "success";
}
//删
@RequestMapping(value="/{id}",method=RequestMethod.DELETE)
public String delteUser(@PathVariable Long id)
{
users.remove(id);
return "success";
}
//改
@RequestMapping(value="/{id}",method=RequestMethod.PUT)
public String updateUser(@PathVariable Long id,@ModelAttribute User user)
{
User u=users.get(id);
u.setName(user.getName());
u.setAge(user.getAge());
users.put(id,u);
return "success";
}
//查
@RequestMapping(value="/{id}",method=RequestMethod.GET)
public User getUser(@PathVariable Long id)
{
return users.get(id);
}
}
3、当需要post、delete的操作,可以利用postman操作,其中,若需要post数据时候,就在 body中添加关键字和他的值。
而不用写一个前端的页面测试代码的效果。
4、关于理解@ModelAttribute 和 @PathVariable这两个注解?
@ModelAttribute:前端会返回 能构成一个类的数据 到tomcat容器中,而容器根据请求的url(/user)找到controller类,然后容器为 Contrller类 生成对应的 model对象,根据键值给user的对应参数赋值。
@PathVariable:针对的则是一个单独的参数,不用类。
只是个人经验,个人理解,如有错误,敬请指出,谢谢