0


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

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

前言

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

在这里插入图片描述

@Controller 注解的原理

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

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

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

@Controller 注解的用法

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

1. 创建控制器类

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

@ControllerpublicclassHelloController{@GetMapping("/hello")publicStringhello(){return"hello";}}

2. 编写控制器方法

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

@GetMapping("/hello")publicStringhello(){return"hello";}

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

3. 配置视图解析器

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

@BeanpublicViewResolverviewResolver(){InternalResourceViewResolver resolver =newInternalResourceViewResolver();
    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” 视图的内容了。

@SpringBootApplicationpublicclassMyApp{publicstaticvoidmain(String[] args){SpringApplication.run(MyApp.class, args);}}

@Controller 注解的示例

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

1. 创建项目

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

  • Spring Web
  • Thymeleaf

2. 创建控制器类

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

@ControllerpublicclassGreetingController{@GetMapping("/greeting")publicStringgreeting(@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 模板文件。

<!DOCTYPEhtml><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!” 的内容。

@SpringBootApplicationpublicclassMyApp{publicstaticvoidmain(String[] args){SpringApplication.run(MyApp.class, args);}}

总结

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


本文转载自: https://blog.csdn.net/JasonXu94/article/details/131455382
版权归原作者 程序员徐师兄 所有, 如有侵权,请联系我们删除。

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

还没有评论