SpringMVC开发常见注解

来源:互联网 发布:听相声的软件 编辑:程序博客网 时间:2024/05/27 20:51

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组件

博客地址:SpringMVC开发常见注解

0 0