动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Spring MVC常用注解详解

08-19 17:33 178浏览
举报 T字号
  • 大字
  • 中字
  • 小字

 之前我们已经就Spring MVC中的@Controller注解写过一篇专门的文章来介绍它,这无疑说明了@Controller注解的重要性。除此之外,还有一些Spring MVC常用注解不容忽视。下面为大家详细介绍剩下的Spring MVC常用注解。

    1、@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。@RequestMapping的作用是建立请求URL和处理方法之间的对应关系。方法的级别上注解表示进一步指定到处理方法的映射关系。

@RequestMapping的六个属性:

1)path-指定请求路径的URL

2)value属性和path属性是一样的

3)mthod 指定该方法的请求方式

4)params 指定限制请求参数的条件

5)headers 发送的请求中必须包含的请求头

6)Consumes:指定处理请求的提交内容类型,例如application/json, text/html;

@RequestMapping 注解比较简单,举个例子:

@RestController

@RequestMapping(value = "/test", produces = "application/json; charset=UTF-8")

public class TestController {

 

      @RequestMapping(value = "/get", method = RequestMethod.GET)

      public String testGet() {

          return "success";

      }

}

这个很简单,启动项目在浏览器中输入 localhost:8080/test/get 测试一下即可。

四种不同的请求方式,都有相应的注解。不用每次在@RequestMapping注解中加 method 属性来指定,上面的 GET 方式请求可以直接使用 @GetMapping("/get") 注解,效果一样。相应地,PUT 方式、POST 方式和 DELETE 方式对应的注解分别为 @PutMapping、@PostMapping 和 DeleteMapping。

2.@Autowired

@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入;@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。如下:

public class TestServiceImpl {

   @Autowired

   @Qualifier("userDao")

   private UserDao userDao;

}

3.@Resource

@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。

public class TestServiceImpl {

   // 下面两种@Resource只要使用一种即可

   @Resource(name="userDao")

   private UserDao userDao; // 用于字段上

   

   @Resource(name="userDao")

   public void setUserDao(UserDao userDao) { // 用于属性的setter方法上

       this.userDao = userDao;

   }

}

4.@ResponseBody

@ResponseBody注解通常使用在控制层的方法上,用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过Response响应给客户端。

假如是字符串则直接将字符串写到客户端;假如是一个对象,此时会将对象转化为json串然后写到客户端。这里需要注意的是,如果返回对象,按utf-8编码。如果返回String,页面可能出现乱码。因此在注解中我们可以手动修改编码格式,例如@RequestMapping(value="/cat/query",produces="text/html;charset=utf-8"),前面是请求的路径,后面是编码格式。

5、@RequestBody

用于获取请求体的内容, 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

 

/**

* 接收请求

*/

@RequestMapping(path="/hello")

public String sayHello(@RequestBody String body) {

    System.out.println("aaaa");

    System.out.println(body);

    return "success";

}

6.@PathVariable

@PathVariable 注解主要用来获取 URL 参数,Spring Boot 支持 Restfull 风格的 URL,比如一个 GET 请求携带一个参数 id,我们将 id 作为参数接收,可以使用 @PathVariable 注解。如下:

@GetMapping("/user/{id}")

public String testPathVariable(@PathVariable Integer id) {

    System.out.println("获取到的id为:" + id);

    return "success";

}

7.@Component

相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。

8.@Repository

用于注解dao层,在daoImpl类上面注解。

9.@requestParam

@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter("name"),它有三个常用参数:defaultValue = "0", required = false, value = "isApp";defaultValue 表示设置默认值,required 铜过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。

当然,上面为大家介绍的只是一部分Spring MVC常用注解,还有一些其他的注解在一些特殊情况下也会被使用。所以,不限于此的小伙伴们可以观看本站的Spring MVC视频教程获得更多的注解知识!

0人推荐
共同学习,写下你的评论
0条评论
十年
程序员十年

13篇文章贡献72369字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消