SpringMVC常用注解,SpringMVC 常用注解都有哪些

  SpringMVC常用注解,SpringMVC 常用注解都有哪些

  如何解决写爬虫IP受阻的问题?立即使用。

  SpringMVC 常用注解

  1、@Controller

  在SpringMVC中,控制器Controller负责处理DispatcherServlet分发的请求。它将用户请求的数据经过业务处理层处理后封装成模型,然后将模型返回到相应的视图进行显示。SpringMVC提供了一个非常简单的方法来定义一个控制器。不需要继承特定的类,也不需要实现特定的接口,只需要用@Controller将类标记为控制器,然后用@RequestMapping和@RequestParam等一些注解来定义URL请求和控制器方法之间的映射,这样控制器就可以被外界访问了。另外,控制器不直接依赖HttpServlet对象如HttpServletRequest、HttpServletResponse,可以通过控制器的方法参数灵活获取。

  @Controller用来标记一个类,用它标记的类是SpringMVC控制器对象。分发处理器将扫描使用该注释的类的方法,并检查该方法是否使用了@RequestMapping注释。@Controller只定义了一个控制器类,使用@RequestMapping注释的方法才是真正处理请求的处理器。仅仅用@Controller标记一个类并不能真正说是SpringMVC的控制器类,因为Spring此时并不知道。那么你是如何认识春天的呢?这时候我们需要把这个控制器类交给Spring来管理。有两种方法:

  (1)在SpringMVC的配置文件中定义MyController的bean对象。

  (2)告诉Spring在SpringMVC的配置文件中哪里可以找到标有@Controller的控制器。

  !-方法一-

  bean class= com . host . app . web . controller . my controller /

  !方法2

  context:component-scan base-package= com . host . app . web //路径写入控制器上层(扫描包详情见下面简要分析)2、@RequestMapping

  RequestMapping是一个用于处理请求地址映射的注释,可以用在类或方法上。用在类上,意味着类中响应请求的所有方法都将此地址作为父路径。

  RequestMapping注释有六个属性。下面我们分成三类进行说明(下面有相应的例子)。

  1、价值、方法;

  Value:指定请求的实际地址,指定的地址可以是URI模板模式(后面描述);

  方法:指定请求的方法类型,如GET、POST、PUT、DELETE等。

  2、消费,生产

  Consumes:指定处理请求所提交的内容类型(Content-Type),如application/json、text/html;

  Produces:指定要返回的内容类型,仅当指定的类型包含在请求标头中的(Accept)类型中时,才会返回该内容类型。

  3、参数、标题

  Params:指定此方法要处理的请求中必须包含一些参数值。

  Headers:指定请求必须包含一些指定的头值,以便此方法处理请求。

  3、@Resource和@Autowired

  @Resource和@Autowired用于bean注入。其实@Resource并不是Spring的注解。它的包是javax.annotation.Resource,需要导入,但是Spring支持注释注入。

  1.共同点

  两者都可以写在字段和setter方法上。如果两者都写在字段上,那么就没有必要写setter方法。

  2.差异

  (1)@自动连线

  @Autowired为Spring提供的注释需要导入到包org . Spring framework . beans . factory . annotation . auto wired中;仅按类型注入。

  公共类TestServiceImpl {

  //只能使用下面两个@Autowired中的一个

  @自动连线

  private UserDao userDao//在字段上使用

  @自动连线

  公共void set userdao(userdao userdao){//用在属性的方法上

  this.userDao=userDao

  }

  }@Autowired标注是根据类型(byType)组装依赖对象。默认情况下,它要求依赖对象必须存在。如果允许空值,它的required属性可以设置为false。如果我们想按名称组装,我们可以将它与@Qualifier注释一起使用。如下所示:

  公共类TestServiceImpl {

  @自动连线

  @限定符( userDao )

  private UserDao userDao

  }(2)@资源

  @Resource默认由ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:名称和类型,而Spring将@Resource注释的名称属性解析为bean的名称,类型属性解析为bean的类型。因此,如果使用name属性,则使用byName的自动注入策略,而在使用Type属性时,则使用byType的自动注入策略。如果既没有设置name属性也没有设置type属性,那么将通过反射机制使用byName自动注入策略。

  公共类TestServiceImpl {

  //只能使用以下两种@资源中的一种。

  @Resource(name=userDao )

  private UserDao userDao//在字段上使用

  @Resource(name=userDao )

  公共set userdao(userdao userdao){//用于属性的setter方法。

  this.userDao=userDao

  }

  } @资源程序集序列:

  如果同时指定了名称和类型,将从组装的Spring上下文中找到唯一匹配的bean,如果没有找到,将抛出异常。

  如果指定了name,将从组装的上下文中查找具有匹配名称(id)的bean,如果找不到,将抛出异常。

  如果指定了type,将从组装的上下文中找到具有相似匹配的唯一bean。如果没有找到多个beans,将会抛出一个异常。

  如果既没有指定名称也没有指定类型,则自动按名称进行组装;如果没有匹配,它将回到一个原始类型进行匹配,如果有匹配,它将自动组装。

  @Resource等同于@Autowired,只不过@Autowired是根据byType自动注入的。

  4、@ModelAttribute和 @SessionAttributes

  意味着这个控制器的所有方法在调用之前都执行这个@ModelAttribute方法,可以用在注释和方法参数中。您可以将此@ModelAttribute属性应用于BaseController。所有控制器都继承BaseController,这样在调用控制器时可以先执行@ModelAttribute方法。

  @SessionAttributes将值放入会话范围,并将其写入类。

  示例如下:使用@ modelattributes和@SessionAttributes传输和保存数据。

  5、@PathVariable

  将请求URL中的模板变量映射到函数处理方法的参数中,即取出uri模板中的变量作为参数。比如:

  @控制器

  公共类TestController {

  @ request mapping(value=/user/{ userId }/roles/{ roleId } ,方法=RequestMethod。获取)

  公共字符串getLogin(@PathVariable(userId )字符串userId,

  @ path variable( roleId )String roleId){

  System.out.println(用户Id: userId );

  system . out . println( Role Id: roleId );

  回‘你好’;

  }

  @ request mapping(value=/product/{ product id } ,method=RequestMethod。获取)

  公共字符串get product(@ path variable( product id )String product id){

  System.out.println(产品Id: Product Id );

  回‘你好’;

  }

  @ request mapping(value=/JavaBean/{ regexp 1:[a-z-]} ,

  方法=请求方法。获取)

  公共字符串getRegExp(@ path variable( regexp 1 )String regexp 1){

  System.out.println(URI第一部分: regexp 1 );

  回‘你好’;

  }

  }6、@requestParam

  @requestParam主要用于获取SpringMVC后台控制层的参数。类似的还有request.getParameter(name ),有三个常用参数:defaultvalue= 0 ,required=false,value= isappdefaultValue表示设置默认值,是否需要布尔设置是必须传入的参数,Value表示传入参数的类型。

  7、@ResponseBody

  函数:该注释用于通过适当的HttpMessageConverter将控制器的方法返回的对象转换为指定的格式,然后写入响应对象的正文数据区。

  使用时机:当返回的数据不是带有html标签的页面,而是某种其他格式(如json、xml等)的数据时使用。);

  8、@Component

  相当于一般的注释,在不知道某些类属于哪一层的时候使用,但不建议使用。

  9、@Repository

  用于注释dao层,并在daoImpl类上进行注释。

  推荐教程:《Java教程》

  以上10-59000是SpringMVC常用注释的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: