SSM注解式开发中常用注解(超详细)

【能少敲点代码量,就少敲点】

@Controller注解

@Controller注解是在Spring的org.springframework.stereotype包下,org.springframework.stereotype.Controller注解类型用于指示Spring类的实例是一个控制器,使用@Controller注解的类不需要继承特定的父类或者实现特定的接口,相对之前的版本实现    Controller接口变的更加简单。而Controller接口的实现类只能处理一个单一的请求动作,而@Controller注解注解的控制器可以同时支持处理多个请求动作,使程序开发变的更加灵活。
@Controller用户标记一个类,使用它标记的类就是一个Spring MVC Controller对象,即:一个控制器类。Spring使用扫描机制查找应用程序中所有基于注解的控制器类,分发处理器会扫描使用了该注解的方法,并检测该方法是否使用了@RequestMapping注        解,而使用@RequestMapping注解的方法才是真正处理请求的处理器。为了保证Spring能找到控制器,我们需要完成两件事:
    1、在Spring MVC的配置文件中的头部引入spring-context;
    2、使用 <context:component-scan/> 元素,该元素的功能是:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为Spring的Bean。

@RequestMapping注解

Spring MVC中用于参数绑定的注解有很多,都在org.springframework.web.bind.annotation包中,根据它们处理的request的不同内容可以分为四类(常用的类型)。
第一类:处理request body部分的注解有:@RequestParam和@RequestBody
第二类:处理requet uri部分的注解有:@PathVaribale
第三类:处理request header部分的注解有:@RequestHeader和@CookieValue
第四类:处理attribute类型的注解有:@SessionAttributes和@MoelAttribute

接下来,我将说一说@RequestMapping注解,前面在说@Controller注解的时候已经提到过这个注解是用来处理类和方法发送请求动作,@RequestMapping注解也在org.springframework.web.bind.annotation包中,但是严格来说,它并不属于参数绑定的注解。因此,@RequestMapping可以用来注释一个控制器类,在这种情况下,所有的方法都将映射为相对于类级别的请求,表示该控制器处理的所有请求都被映射到value属性所指示的路径下。

@RequestParam注解

下面来说org.springframework.web.bind.annotation包下的第三个注解,即:@RequestParam注解,该注解类型用于将指定的请求参数赋值给方法中的形参。那么@RequestParam注解有什么属性呢?它有4种属性,下面将逐一介绍这四种属性:
1、name属性
该属性的类型是String类型,它可以指定请求头绑定的名称;

2、value属性
该属性的类型是String类型,它可以设置是name属性的别名;

3、required属性
该属性的类型是boolean类型,它可以设置指定参数是否必须绑定;

4、defalutValue属性
该属性的类型是String类型,它可以设置如果没有传递参数可以使用默认值。

请求处理方法参数的可选类型位Java的8种基本数据类型和String。

@PathVaribale注解

下面来说org.springframework.web.bind.annotation包下的第四个注解,即:@PathVaribale注解,该注解类型可以非常方便的获得请求url中的动态参数。@PathVaribale注解只支持一个属性value,类型String,表示绑定的名称,如果省略则默认绑定同名参数。

@RequestHeader注解

下面来说org.springframework.web.bind.annotation包下的第五个注解,即:@RequestHeader注解,该注解类型用于将请求的头的信息区域数据映射到功能处理方法的参数上。
那么@RequestHeader注解有什么属性呢?它和@RequestParam注解一样,也有4种属性,分别如下:
1、name属性
该属性的类型是String类型,它可以指定请求头绑定的名称;

2、value属性
该属性的类型是String类型,它可以设置是name属性的别名;

3、required属性
该属性的类型是boolean类型,它可以设置指定参数是否必须绑定;

4、defalutValue属性
该属性的类型是String类型,它可以设置如果没有传递参数可以使用默认值。

@CookieValue注解

下面来说org.springframework.web.bind.annotation包下的第六个注解,即:@CookieValue注解,该注解类型用于将请求的Cookie数据映射到功能处理方法的参数上。
同样,它和@RequestHeader,还有@RequestParam注解一样,有相同的4种属性,分别如下:
1、name属性
该属性的类型是String类型,它可以指定请求头绑定的名称;

2、value属性
该属性的类型是String类型,它可以设置是name属性的别名;

3、required属性
该属性的类型是boolean类型,它可以设置指定参数是否必须绑定;

4、defalutValue属性
该属性的类型是String类型,它可以设置如果没有传递参数可以使用默认值。

@SessionAttributes注解

下面来说org.springframework.web.bind.annotation包下的第七个注解,即:@SessionAttributes注解,该注解类型允许我们有选择地指定Model中的哪些属性需要转存到HttpSession对象当中。
@SessionAttributes注解有三个属性,分别如下:
1、names属性
该属性的类型是String[],它可以指定Model中属性的名称,即存储在HttpSession当中的属性名称;

2、value属性
该属性的类型是String[],它可以设置names属性的别名;

3、types属性
该属性的类型是Class<?>[] ,它可以指定参数是否必须绑定。

注意:@SessionAttributes只能声明在类似,而不能声明在方法上。

@ModelAttribute注解

接下来要说org.springframework.web.bind.annotation包下的第八个注解,也就是今天要说的Spring MVC常用注解的最后一个,即:@ModelAttribute注解,该注解类型将请求参数绑定到Model对象。@ModelAttribute注解只支持一个属性value,类型为String,表示绑定的属性名称。
@ModelAttribute注解是使用方式有很多种,下面将通过@ModelAttribute注解的5种方式来演示@ModelAttribute注解应用。
因这个注解用到的方式很多,因此我在我的eclipse中重新再创建一个新的maven工程,名叫“springmvc-comment2”,和创建一个maven工程一样,我们需要让pom.xml导入所需要的jar包。

@ModelAttribute注解常用的5种使用方法,而且用法都非常灵活,因此我们开发者可以根据业务的需求来选择使用。以上就是这两天总结的Spring MVC常用的8个注解

文章出处:https://blog.csdn.net/qq_42223653/article/details/90486584

----------------------------------------------------------感谢到访!期待您的下次光临!

原文地址:https://www.cnblogs.com/varchar-pig/p/14224646.html