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开发常见注解