Spring Boot 中的 @Controller 注解:原理、用法与示例

这篇具有很好参考价值的文章主要介绍了Spring Boot 中的 @Controller 注解:原理、用法与示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot 中的 @Controller 注解:原理、用法与示例

前言

Spring Boot 是一个快速开发 Spring 应用程序的框架,它提供了很多有用的功能和特性。其中,@Controller 注解是一个常用的注解,它可以将一个 Java 类标记为 Spring MVC 中的控制器。本文将介绍 Spring Boot 中 @Controller 注解的原理、用法和示例。

@controller,Java 教程,spring boot,python,后端

@Controller 注解的原理

在 Spring MVC 中,@Controller 注解用于标识一个 Java 类是一个控制器。控制器负责接收请求、处理请求,并返回响应。具体来说,使用 @Controller 注解的类将会被 Spring MVC 自动扫描,并注册为一个控制器。

@Controller 注解的作用和 @Component 注解类似,都是将一个类标记为 Spring 的组件。但是,@Controller 注解还有以下特性:

  • 自动映射 URL。@Controller 注解可以自动将请求映射到控制器的方法上。
  • 支持视图解析。@Controller 注解可以将方法的返回值解析为视图,并渲染到客户端。

@Controller 注解的用法

使用 @Controller 注解的步骤如下:

1. 创建控制器类

首先,需要创建一个 Java 类,并使用 @Controller 注解来标注这个类。

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }

}

2. 编写控制器方法

在控制器类中,需要编写控制器方法。控制器方法处理请求,并返回响应。控制器方法可以使用 Spring MVC 提供的注解来指定请求的 URL、请求方法和其他参数。

@GetMapping("/hello")
public String hello() {
    return "hello";
}

上面的代码中,@GetMapping 注解用于指定请求的 URL,即 /hello。方法的返回值为 “hello”,表示要渲染名为 “hello” 的视图。

3. 配置视图解析器

在 Spring MVC 中,控制器方法的返回值可以是一个视图名称,也可以是一个 ModelAndView 对象。为了将视图名称解析为实际的视图,需要配置一个视图解析器。

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    return resolver;
}

上面的代码中,创建了一个 InternalResourceViewResolver 对象,并将前缀设置为 /WEB-INF/views/,后缀设置为 .jsp。这样,当控制器方法返回 “hello” 时,Spring MVC 将会解析为 /WEB-INF/views/hello.jsp。

4. 启动应用程序

最后,需要启动应用程序,并访问 http://localhost:8080/hello,就可以看到 “hello” 视图的内容了。

@SpringBootApplication
public class MyApp {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

}

@Controller 注解的示例

下面是一个使用 @Controller 注解的示例项目。

1. 创建项目

使用 Spring Initializr 创建一个新的 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Thymeleaf

2. 创建控制器类

创建一个 GreetingController 类,并使用 @Controller 注解来标注这个类。

@Controller
public class GreetingController {

    @GetMapping("/greeting")
    public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
        model.addAttribute("name", name);
        return "greeting";
    }

}

上面的代码中,@GetMapping 注解用于指定请求的 URL,即 /greeting。方法的参数中,@RequestParam 注解用于指定请求参数。如果请求中没有传递 name 参数,则使用默认值 “World”。方法的返回值为 “greeting”,表示要渲染名为 "greeting"的视图。

3. 创建视图模板

在 src/main/resources/templates 目录下,创建一个名为 greeting.html 的 Thymeleaf 模板文件。

<!DOCTYPE html>
<html>
<head>
    <title>Greeting</title>
</head>
<body>
    <h1>Hello, [[${name}]]!</h1>
</body>
</html>

上面的代码中,[[${name}]] 表示 Thymeleaf 表达式,用于获取控制器方法中传递的 name 参数的值。

4. 启动应用程序

最后,启动应用程序,并访问 http://localhost:8080/greeting?name=Jack,可以看到 “Hello, Jack!” 的内容。

@SpringBootApplication
public class MyApp {

    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }

}

总结

@Contoller 注解是 Spring Boot 中常用的注解之一,它可以将一个 Java 类标记为 Spring MVC 中的控制器。控制器负责接收请求、处理请求,并返回响应。本文介绍了 @Controller 注解的原理、用法和示例,希望可以帮助读者更好地理解和使用这个注解。文章来源地址https://www.toymoban.com/news/detail-727676.html

到了这里,关于Spring Boot 中的 @Controller 注解:原理、用法与示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Spring MVC @Controller和@RequestMapping注解

    @Controller 注解可以将一个普通的 Java 类标识成控制器(Controller)类,示例代码如下。 Spring MVC 是通过组件扫描机制查找应用中的控制器类的,为了保证控制器能够被 Spring MVC 扫描到,我们还需要在 Spring MVC 的配置文件中使用  context:component-scan/  标签,指定控制器类的基本包

    2024年02月09日
    浏览(9)
  • 【SpringBoot】常用的的各种注解(一):Controller中的请求参数

    【SpringBoot】常用的的各种注解(一):Controller中的请求参数

    请求路径中的参数,可以有一个或者多个 在Postman中也是直接在请求路径中添加参数即可 获取查询参数,形式为 url?name=张三 ,可以有一个或者多个。 在Postman中可以使用 Query Params 的方式添加参数: 也可以使用Body中的 form-data 的形式添加参数 一般用于传输DTO参数,只能有一

    2024年02月06日
    浏览(14)
  • Spring Boot 单元测试(Controller测试与Service测试)

    Spring Boot 单元测试(Controller测试与Service测试)

    🎈博客主页:🌈我的主页🌈 🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏 🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩 🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页 @SpringBootTest相当于springMvc中单元测试中的

    2023年04月26日
    浏览(13)
  • Spring Boot中的@MessageMapping注解:原理及使用

    Spring Boot中的@MessageMapping注解:原理及使用

    在Web应用程序中,实现实时的双向通信是一项重要的功能。为了实现这种功能,需要使用WebSocket协议。Spring框架提供了Spring WebSocket模块来实现WebSocket通信。Spring Boot是基于Spring框架构建的,它提供了一些方便的注解和自动配置来简化WebSocket的开发。 @MessageMapping注解是Spring B

    2024年02月12日
    浏览(37)
  • Spring Boot 中的 @RabbitListener 注解是什么,原理,如何使用

    Spring Boot 中的 @RabbitListener 注解是什么,原理,如何使用

    在 RabbitMQ 中,消息的接收需要通过监听队列来实现。在 Spring Boot 应用程序中,可以使用 @RabbitListener 注解来监听队列,并在接收到消息时执行指定的方法。本文将介绍 @RabbitListener 注解的原理、使用方法和常见应用场景。 @RabbitListener 注解是 Spring AMQP 框架中的一个关键组件,

    2024年02月09日
    浏览(38)
  • Spring Boot 中的 @FeignClient 注解是什么,原理,如何使用

    Spring Boot 中的 @FeignClient 注解是什么,原理,如何使用

    在微服务架构中,服务之间的调用是非常频繁的。为了简化服务之间的调用,Spring Boot 提供了一个叫做 Feign 的组件。Feign 可以帮助我们定义和实现服务之间的 RESTful 接口,使得服务之间的调用更加方便和可靠。在本文中,我们将深入探讨 Spring Boot 中的 @FeignClient 注解是什么,

    2024年02月09日
    浏览(41)
  • Spring Boot 中的 @PutMapping 注解是什么,原理,如何使用

    Spring Boot 中的 @PutMapping 注解是什么,原理,如何使用

    在 Spring Boot 中,@PutMapping 是一种注解,它可以将 HTTP PUT 请求映射到指定的处理方法上。本文将介绍 @PutMapping 的原理以及如何在 Spring Boot 中使用它。 在 RESTful API 中,PUT 请求常用于更新资源。例如,我们可以使用 PUT 请求将一个用户的信息更新到服务器上。在 Spring Boot 中,我

    2024年02月08日
    浏览(11)
  • Spring Boot 中的 @ComponentScan 注解是什么,原理,如何使用

    Spring Boot 中的 @ComponentScan 注解是什么,原理,如何使用

    在 Spring Boot 中,@ComponentScan 是一种注解,它可以让 Spring 自动扫描指定的包及其子包中的组件,并将这些组件自动装配到 Spring 容器中。本文将介绍 @ComponentScan 的原理以及如何在 Spring Boot 中使用它。 在 Spring 中,组件是指那些被 Spring 管理的对象,比如 Bean、Controller、Servic

    2024年02月11日
    浏览(14)
  • Spring Boot 中的 @RefreshScope 注解是什么,原理,如何使用

    Spring Boot 中的 @RefreshScope 注解是什么,原理,如何使用

    在 Spring Boot 中,@RefreshScope 注解是一个非常有用的注解。它可以让 Spring Boot 应用程序在运行时重新加载配置。这意味着您可以在不停止和重新启动应用程序的情况下更改配置。在本文中,我们将介绍 @RefreshScope 注解的原理和如何在 Spring Boot 应用程序中使用它。 @RefreshScope 是

    2024年02月13日
    浏览(12)
  • Spring Boot中的@Scheduled注解:定时任务的原理与实现

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    本文将详细探讨Spring Boot中@Scheduled注解的使用,包括其原理、实现流程、步骤和代码示例。通过本文,读者将能够了解如何在Spring Boot应用中轻松创建和管理定时任务。 在Spring框架中,@Scheduled注解用于标记一个方法,使其能够在固定的时间间隔内自动执行。这个注解主要基于

    2024年02月22日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包