springmvc 是类似于 struts2 的一个 mvc 框架,在实际开发中,接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示,但是上手难度却比 struts2 简单多了。而且由于 struts2 所暴露出来的安全问题,springmvc 已经成为了大多数企业优先选择的框架。
在springmvc中有许多封装好的注解,使用这些注解能够简化我们的开发。下面就是一些常用的注解:
1、@controller
@controller用于标记在一个类上,使用它标记的类就是一个springmvccontroller对象。分发处理器将会扫描使用了该注解的类的 方法,并检测该方法是否使用了@requestmapping 注解。@controller只是定义了一个控制器类,而使用@requestmapping注解的方法才是真正处理请求的处理器。单单使用 @controller标记在一个类上还不能真正意义上的说它就是springmvc的一个控制器类,因为这个时候spring还不认识它。那么要如何做 spring才能认识它呢?这个时候就需要我们把这个控制器类交给spring来管理。有两种方式:
(1)在springmvc 的配置文件中定义mycontroller 的bean 对象。
(2)在springmvc 的配置文件中告诉spring 该到哪里去找标记为@controller 的controller 控制器。
2、@requestmapping
requestmapping注解有六个属性,下面我们把它分成三类进行说明
(1)value,method
value:指定请求的实际地址,指定的地址可以是uri template模式;
method:指定请求的method类型, get、post、put、delete等;
value的uri值可以为以下三类:普通的具体值;含有某变量的一类值;含有正则表达式的一类值;
(2)consumes,produces
consumes:指定处理请求的提交内容类型(content-type),例如application/json, text/html;
produces:指定返回的内容类型,仅当request请求头中的(accept)类型中包含该指定类型才返回;
(3)params,headers
params:指定request中必须包含某些参数值时,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
3.@resource和@autowired
@resource和@autowired都是做bean的注入时使用,其实@resource并不是spring的注解,它的包是javax.annotation.resource,需要导入,但是spring支持该注解的注入,两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。
4.@pathvariable
用于将请求url中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
5.@responsebody
作用: 该注解用于将controller的方法返回的对象,通过适当的httpmessageconverter转换为指定格式后,写入到response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用
6.@restcontroller
我们经常见到一些控制器实现了rest的api,只为服务于json,xml或其它自定义的类型内 容,@restcontroller用来创建rest类型的控制器,与@controller类型。@restcontroller就是这样一种类型,它 避免了你重复的写@requestmapping与@responsebody。
以上就是springmvc注解是什么的详细内容。