spring 学习 requestMapping
1: @RequestMapping:处理请求地址映射的请求,有6个属性?
` value: URL 地址
method: GET/POST/PUT/DELETE
consumes: :指定处理请求的提交内容(Content-Type),例如:application/json, text/html
produces: 指定返回的内容类型,仅当request的Accept类型中包含该指定类型才返回
parameters: 指定request必须包含哪些参数才让这个处理
RequestMapping (value= "testParams" , params={ "param1=value1" , "param2" , "!param3" })/param1 的值必须等
于value1 ,参数param2 必须存在,值无所谓,参数param3 必须不存在
headers: 指定request中必须包含某些指定的header值,才能让该方法处理
2: @Resource @Autowired
都是在注入bean的时候用.
相同点: 二者都写在字段或者setter方法.
不同点:@AutoWired默认是按byType装配,默认情况下要求bean必须存在,可以用requered=false表示允许是null。
如果是byName(id)装配,可以结合 @Qualifier注解一起使用。
@Resource默认是按照ByName(bean id)自动注入,可以用name和type属性指定装配方式。
3: Spring MVC其他常用注解
@ModelAttribute
这个在AC面试的时候考察了:当我们请求 /myTest/sayHello.do 的时候使用 @ModelAttribute 标记的方法会先执行,然后把它们返回的对象存放到模型中。最终访问到 sayHello 方法的时候,使用 @ModelAttribute 标记的方法参数都能被正确的注入值。
@SessionAttributes
@Controller
@RequestMapping ( "/myTest" )
@SessionAttributes (value={ "intValue" , "stringValue" }, types={User. class })
指定了属性为 intValue 或 stringValue 或者类型为 User 的都会放到 Session中.
@PathVariable: 请求参数中变量
@RequestParameter: 三个常用参数: defaultvalue=”xx”/required=false/value=”xxx”
@ResponseBody: 将controller方法返回的队形,通过适当的HttpMessageConverer转化为指定格式后,写入到Response对象的body数据区。当返回的是jason/XML 等的时候用。
@Component
@Repository: 用在dao层上
@CookieValue:
@RequestHeader: 把header上的值绑定到参数
@RequestBody:该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded
编码的内容,例如application/json,
application/xml等;
它是通过使用HandlerAdapter 配置的HttpMessageConverters
来解析post
data body,然后绑定到相应的bean上的。