springMVC开发中使用了许多注解,不仅方便开发,也使代码更加简洁。 常用的注解有: @RequestMapping参数:
—> value:指定请求的实际地址,指定的地址可以是URI Template 模式
—> method:指定请求的method类型, GET、POST、PUT、DELETE等
—> consumes:定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
—> produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
—> params:指定request中必须包含某些参数值时,才让该方法处理。
—> headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。 @RequestMapping(value = "/{commentid}", method = RequestMethod.DELETE, consumes = "application/json",produces = "application/json", params = "myParam=myValue",headers = "Refer=12345678") Controller参数注解:
->@PathVariable:当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。 ->@RequestParam:常用来处理简单类型的绑定;也可用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST;
【注:@RequestParam有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;】 ->@RequestBody:该注解常用来处理Content-Type: 如application/json, application/xml等(但不是application/x-www-form-urlencoded编码的内容);
【注:它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。】 ->@RequestHeader:可以把Request请求header部分的值绑定到方法的参数上。 public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive) { … } ->@CookieValue:可以把Request header中关于cookie的值绑定到方法的参数上。 @RequestMapping("/displayHeaderInfo.do") public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie) { … } @Autowired:自动装配,Spring下的注解类。类似于iOS中的@property,代替成员变量的set/get方法;可用参数@Autowired(required = false) 表示在找不到匹配的Bean时也不报错,多用于测试阶段; @Qualifier:类似@Autowired,区别在于:@Autowired注释进行byType注入,而@Qualifier是通过byName注入。
【注意:@Autowired可以对成员变量、方法以及构造函数进行注释,而@Qualifier的标注对象是成员变量、方法入参、构造函数入参。正是由于注释对象的不同,所以Spring不将 @Autowired和@Qualifier统一成一个注释类。】 @Resource:类似@Autowired,默认按byName自动注入,有两个属性:name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。 @Component:指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。 @Service:用于标注业务层组件 @Repository:用于标注数据访问组件,即DAO组件
|