A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liqiangheb 黑马粉丝团   /  2017-11-13 14:54  /  1811 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

springMVC开发中使用了许多注解,不仅方便开发,也使代码更加简洁。
常用的注解有:
@RequestMapping参数:
—> value:指定请求的实际地址,指定的地址可以是URI Template 模式
—> method:指定请求的method类型, GETPOSTPUTDELETE
—> 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编码的内容,提交方式GETPOST
【注:@RequestParam有两个属性: valuerequiredvalue用来指定要传入值的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自动注入,有两个属性:nametype,Spring@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Component:指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Service:用于标注业务层组件
@Repository:用于标注数据访问组件,即DAO组件




1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马