一,@RequestMapping
可以用在类和方法上
1.1 作用:
将客户端请求映射到可匹配的类和方法中
1.2 属性:
name
给映射指定一个名字
path(同value相同)
请求的url,path={"/mixedAttribute1","/mixedAttribute2"}
method
请求的方法,method={RequestMethod.GET,RequestMethod.POST}
params
请求参数,params={"id=1","name=cc"}
headers
请求头,headers={"header1=1","header2=2"}
consumes
通过查看源码我们知道请求头的Content-Type如果跟consumes设置类型之一匹配的话,那么请求将映射到这里
produces
通过查看源码我们知道请求头的Accept如果跟produces设置类型之一匹配的话,那么请求将映射到这里
二,@Controller
标注一个类是SpringMVC Controller对象,前端控制器会扫描这个类的方法,并判断这些方法是否使用了@RequestMapping方法
三,@Resource和@Autowired
3.1 相同点
都是用于bean的自动注入,都可以用在属性或者属性的setter方法上面,下面根据@Autowired举个例子
public class HelloWorld{// 下面两种@Autowired只要使用一种即可@Autowiredprivate UserDao userDao; // 用于字段上@Autowiredpublic void setUserDao(UserDao userDao) { // 用于属性的方法上this.userDao = userDao;}
}
3.2 不同点
@Resource默认byName,javax.annotation.Resource,有两个重要属性name和type
@Autowired默认byType,Spring提供的注解,如果想byName,可以结合@Qualifier使用
四.@PathVariable
4.1 作用
将url中的模板变量注入到处理方法的参数上
4.2 栗子
private HttpServletRequest request;@ModelAttributepublic void setRequest(HttpServletRequest request) {this.request = request;}@ResponseBody@RequestMapping(path="/pathVariableMethod1/{name}")public String pathVariableMethod1(@PathVariable("name") String str){return "url:"+request.getRequestURI()+",name:"+str;}@ResponseBody@RequestMapping(path="/pathVariableMethod2/{name}/{name1}")public String pathVariableMethod2(@PathVariable("name") String str,@PathVariable("name1") String str1){System.out.println("==================name=============="+str);return "url:"+request.getRequestURI()+",name:"+str+",name1:"+str1;}@ResponseBody@RequestMapping(path="/pathVariableMethod3/{regexp1:[a-z]+}")public String pathVariableMethod3(@PathVariable("regexp1") String str){return "url:"+request.getRequestURI()+",name:"+str;}
五.@RequestParam
5.1 作用
将请求的参数区数据注入到功能处理方法的参数上
5.2 栗子
@ResponseBody@RequestMapping(path="/requestParamTest/method1")public String method1(@RequestParam("id") String id){return id;}
六、@ModelAttribute
可以用在方法和参数上,放在方法上面表示该Controller对象的每个方法执行前都会执行该方法,放在参数上面表示引用Model中的数据
@ModelAttribute的用法参考https://blog.csdn.net/abc997995674/article/details/80464023