这是一篇记录JAVA的学习笔记. 其中的工程代码参见: https://github.com/ityouknow/spring-boot-examples
- 项目spring-boot-hello
1.1 概述
Spring Boot 3.0 Hello World 示例
1.2 关键部分解释
1.2.1 工程结构
如图所示,该工程为Maven工程, 入口在 HelloApplication.java 中, 路由的控制仅仅有一个 HelloController.java实现。最终在 http://localhost:8080 根路由下返回 “Hello Spring Boot 3.x!” 字符串。
1.2.3 配置文件
application.properties 文件为该工程的配置文件,但是目前为空。即采用默认配置。
1.2.4 单元测试
HelloApplicationTests.java为测试项目文件, 当前项目无测试内容。
1.3 示例代码
1.3.1 坐标的引用.
pom.xml文件中主要引用的坐标有:
其中parent是父坐标,spring-boot-starter-web和spring-boot-starter-test分别是web和test用到的坐标.
1.3.2 代码启动入口.
该项目的启动入口在HelloApplication.java文件中。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
通过注解@SpringBootApplication实现.
@SpringBootApplication 注解是 Spring Boot 框架中的一个复合注解,它是以下三个注解的组合:
@SpringBootConfiguration : 用于标识配置类,等价于原来的 @Configuration 注解。
@EnableAutoConfiguration : 用于启用自动配置,表示 Spring Boot 会根据应用所声明的依赖来自动配置应用。
@ComponentScan : 用于启用组件扫描,表示 Spring 会扫描该类所在的包及其子包中的类,并将其中标识了相关注解的类实例化为 Bean。
总的来说,@SpringBootApplication 注解是 Spring Boot 框架中的一个组合注解,用于标识这是一个 Spring Boot 应用的入口类,它包含了 @SpringBootConfiguration、@EnableAutoConfiguration 和 @ComponentScan 三个注解的功能,可以帮助我们自动配置应用、扫描组件、实例化 Bean。
1.3.3 控制器
该项目目前实现了一个简单的 HelloController控制器(在文件HelloController.java中)。
其主要作用是做web路由。目前只有一个根路由功能,返回一个字符串。
在 Spring Boot 中,控制器是一种用于处理 HTTP 请求的组件。
下面是一个简单的例子:
package com.example;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return "Hello, " + name + "!";
}
}
这个控制器类使用了 @RestController 注解,表示它是一个控制器类。这个类中有一个方法,使用了 @GetMapping(“/hello”) 注解,表示这个方法将处理 GET 请求 /hello。这个方法中有一个参数,使用了 @RequestParam 注解,表示这个参数是从请求中获取的。
当用户访问 http://your-server-address/hello 时,控制器就会接收到请求并执行对应的方法,并返回字符串给用户。
除了使用 @GetMapping之外,还有其它注解可以用来处理不同类型的请求如:
@PostMapping
@PutMapping
@DeleteMapping
还有一些注解可以用来获取请求的信息,如
@PathVariable
@RequestBody
使用这些注解可以更方便的控制器来处理请求.
@RestController注解
@RestController 注解是 Spring 框架中用于标记控制器类的注解。它是一个组合注解,包含了 @Controller 和 @ResponseBody 两个注解。
@Controller 注解是 Spring 框架中用于标记控制器类的注解。
@ResponseBody 注解是 Spring 框架中用于将方法的返回值写入 HTTP 响应体的注解。
综上所述,@RestController 注解用于标记类是控制器类并且将方法的返回值写入 HTTP 响应体。
如果一个类上有@RestController注解,那么这个类中所有的方法都会返回响应体而不是页面,通常用于返回json、xml等数据。