SpringMVC中的常用注解和用法举例详解

 更新时间:2024年08月23日 11:01:28   作者:深鱼~  
在Spring和SpringMVC中,注解的使用大大简化了配置,提高了代码的可读性和可维护性,这篇文章主要给大家介绍了关于SpringMVC中常用注解和用法的相关资料,需要的朋友可以参考下

前言:

MVC是⼀种架构设计模式,也⼀种思想,⽽SpringMVC是对MVC思想的具体实现.除此之外,Spring MVC还是⼀个Web框架.

总结来说,Spring MVC是⼀个实现了MVC模式的We框架

1.@RequestMapping

@RequestMapping 是Spring Web MVC应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的

路由映射:当⽤⼾访问⼀个URL时,将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射
@RequestMapping既可修饰类,也可以修饰⽅法,当修饰类和⽅法时,访问的地址是类路径+⽅法路径

@RequestMapping标识⼀个类:设置映射请求的请求路径的初始信息

@RequestMapping标识⼀个⽅法:设置映射请求请求路径的具体信息

@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi(){
        return "hello,Spring MVC";
    }
}

访问地址:http://127.0.0.1:8080/user/sayHi

@RequestMapping 的URL路径也可以是多层路径,最终访问时,依然是类路径+⽅法路径

@RequestMapping("/user/m1")
@RestController
public class UserController {
    @RequestMapping("/say/hi")
    public String sayHi(){
        return "hello,Spring MVC";
    }
}

访问路径:http://127.0.0.1:8080/user/m1/say/hi

2.@RequestParam

用于将请求参数绑定到方法参数上(后端参数重命名,传递集合等)

@Controller
public class MyController {
 
    @RequestMapping("/greet")
    public String greet(@RequestParam("name") String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

 使用@RequestParam 注解的方法参数默认为必填参数

可以使用 required 属性将@RequestParam配置为可选参数:

@Controller
public class MyController {
 
    @RequestMapping("/greet")
    public String greet(@RequestParam(value = "name2", required = false) String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

3.@RequestBody

用于将 HTTP 请求体中的数据绑定到控制器方法的参数上,即获取 POST 请求中的数据并映射到方法参数。它通常用于处理 JSON 或 XML 格式的请求体数据

@Controller
@RequestMapping("/example")
public class ExampleController {

    @RequestMapping(value = "/addUser", method = RequestMethod.POST)
    @ResponseBody
    public String addUser(@RequestBody User user) {
        // 处理用户数据
        return "User added successfully!";
    }
}

 在上述示例代码中,@RequestBody 用于将 HTTP 请求体中的数据转换成 User 对象,并将其作为参数传递给 addUser() 方法进行处理

4.@PathVariable

path variable:路径变量

和字⾯表达的意思⼀样,这个注解主要作⽤在请求URL路径上的数据绑定,默认传递参数写在URL上,SpringMVC就可以获取到

@RequestMapping("/m8/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String
userName){
    return "解析参数id:"+id+",name:"+userName;
}

使⽤浏览器发送请求:http://127.0.0.1:8080/param/m8/5/zhangsan 

5.@RestController(返回页面)

其方法的返回值会被直接写入 HTTP 响应体中,而不是被视图解析器解析为视图。通常返回的是 JSON 或 XML 数据

@RestController
@RequestMapping("/example")
public class ExampleController {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello, World!";
    }
}

6.@Controller(返回视图)

在方法中直接返回对象时,Spring MVC 会将其作为模型数据传递给视图解析器,然后解析为具体的视图

@Controller
public class MyController {
 
    @RequestMapping("/hello")
    public String hello() {
        return "hello.html";
    }
    //返回html页面
}

 当在类注解中加上 @ResponseBody 时,返回的为数据而不是页面

@RestController=@Controller (返回视图)+ @ResponseBody(返回数据)

@Controller
public class MyController {
 
    @ResponseBody 
    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
    //返回“hello”这个字符串
}

7.@CookieValue

简洁获取Cookie (一次只能获取一次cookie信息)

@RequestMapping("/getCookie")
public String cookie(@CookieValue("bite") String bite) {
    return "bite:" + bite;
}

8.@SessionAttribute

@SessionAttributes 注解用于指定哪些模型属性需要存储在会话

@RequestMapping("/getSess2")
public String sess2(@SessionAttribute(value = "username",required = false)
String username) {
    return "username:"+username;
}

总结 

到此这篇关于SpringMVC中常用注解和用法举例详解的文章就介绍到这了,更多相关SpringMVC常用注解用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • json序列化时忽略值为null的字段2种方式实例

    json序列化时忽略值为null的字段2种方式实例

    这篇文章主要给大家介绍了关于json序列化时忽略值为null的字段的2种方式,当对象中某个字段为null时,我们希望将对象转换成json时为null的字段不会被转换到json字符串,里面需要的朋友可以参考下
    2023-10-10
  • SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例

    SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例

    这篇文章主要介绍了SpringBoot中通过实现WebMvcConfigurer参数校验的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Java实现在word中指定位置插入图片

    Java实现在word中指定位置插入图片

    Poi-tl 是基于 Apache POI 的 Java 开源文档处理库,专注于高效操作 Word 文档,本文小编就来和大家详细讲讲Java如何使用Poi-tl实现在word中指定位置插入图片吧
    2025-06-06
  • Maven介绍与配置+IDEA集成Maven+使用Maven命令小结

    Maven介绍与配置+IDEA集成Maven+使用Maven命令小结

    Maven是Apache软件基金会的一个开源项目,是一个优秀的项目构建管理工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作,本文给大家介绍Maven介绍与配置+IDEA集成Maven+使用Maven命令,感兴趣的朋友一起看看吧
    2024-01-01
  • 使用JPA中@Query 注解实现update 操作方法(必看)

    使用JPA中@Query 注解实现update 操作方法(必看)

    下面小编就为大家带来一篇使用JPA中@Query 注解实现update 操作方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringSecurity当中的CSRF防范使用详解

    SpringSecurity当中的CSRF防范使用详解

    这篇文章主要介绍了SpringSecurity当中的CSRF防范使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • java jdbc连接mysql数据库实现增删改查操作

    java jdbc连接mysql数据库实现增删改查操作

    这篇文章主要为大家详细介绍了java jdbc连接mysql数据库实现增删改查操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • spring @Profiles和@PropertySource实现根据环境切换配置文件

    spring @Profiles和@PropertySource实现根据环境切换配置文件

    这篇文章主要介绍了spring @Profiles和@PropertySource根据环境切换配置文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 如何利用JAVA实现走迷宫程序

    如何利用JAVA实现走迷宫程序

    最近经常在机房看同学在玩一个走迷宫的游戏,比较有趣,自己也用java实现了一个,这篇文章主要给大家介绍了关于如何利用JAVA实现走迷宫程序的相关资料,需要的朋友可以参考下
    2021-06-06
  • Java 中DateUtils日期工具类的实例详解

    Java 中DateUtils日期工具类的实例详解

    这篇文章主要介绍了Java 中DateUtils日期工具类的实例详解的相关资料,有时候开发java项目使用日期类型,这里介绍下日期工具类,需要的朋友可以参考下
    2017-08-08

最新评论