SpringMVC 常用注解整理

来源:互联网 发布:finale for mac 编辑:程序博客网 时间:2024/06/08 03:34

(1)@Controller:
定义控制器
(2)@RequestMapping:
请求路径映射,既可以写在类上,也可以写在方法上。DispatcherServlet截获请求后,就可以通过控制器上的@RequestMapping提供的映射信息确定请求所对应的处理方法。如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。
@RequestMapping注解类的属性有:value、method、params、heards、consumes、produces
value:指定请求的映射地址;
method:指定请求的method类型, GET、POST、PUT、DELETE等;如:method = RequestMethod.GET
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

(3)@RequestParam(value="pageSize", required=true):
表示将前端的值传给后台方法作为参数 value为参数名,required默认为true,表示是否一定要传参数value,为ture时不传会报错。它相当于request.getParameter("pageSize")
 @RequestMapping("/querykh/{khId}")  
public void find( @PathVariable String khId, Model model) { 
}
如果方法参数名,与指定uri template中的变量名称不一样,需要在@PathVariable("name")中指定uri template名称,这样方法参数与uri template变量名称才对应上。
(4)@RequestHeader:绑定请求报头的属性值,
@RequestHeader("Accept-Encoding") String encodinng
(5)@ModelAttribute:可以做为Model输出到View时使用,相当于model.addAttribute("name",name)。

(6)@ResponseBody:
用于将Controller的方法返回的对象,通过适当的HttpMessageConverter(转换器)转换为指定格式后,写入到Response对象的body数据区,返回如Json、xml等。
(7)@PathVariable:
如果使用@RequestMapping URI template 样式映射时, 即 XXX/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
(8)@CookieValue:绑定请求中Cookie值,
(9)@SessionAttributes
如果希望在多个请求间公用某个模型属性数据,则可以在控制器类标注一个@SessionAttributes,SpringMVC会将模型中对应的属性暂存到HttpSersion中。SessionStatus用于清除session中的属性,即调用sessionstatus.setComplete()方法,一般用于退出登录时使用。

(10)@SuppressWarnings:用来抑制编译时的警告信息。
@SuppressWarnings("unchecked")
告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
@SuppressWarnings("serial")
如果编译器出现这样的警告信息:The serializable class WmailCalendar does not declare a static final serialVersionUID field of type long
使用这个注释将警告信息去掉。
@SuppressWarnings("deprecation")
如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。
使用这个注释将警告信息去掉。

(11)@Respository:持久层组件,用于标注DAO层的数据访问组件
(12)@Component是通用标注,在不清楚使用那个注解类,都可以使用它,但不建议这样做
(13)@Resource
 需导入Package:   javax.annotation.Resource
 @Resource有两个中重要的属性:name和type ,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用 byType自动注入策略。默认使用byname注入。
(14) @Autowired
它和@Resource用法类似,默认是通过类型,也可以通过名字注入,
@Autowired @Qualifier("userDao") private userDao udao; 这样就可以了。
要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。需导入Package:org.springframework.beans.factory.annotation.Autowired。
可以通过 @Autowired 对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set 、get方法。






1 0
原创粉丝点击