一、常用的Spring Boot 注解
Spring Boot 是一个快速创建 Spring 应用程序的框架,其基于 Spring 框架,可以轻松快捷地搭建生产级别的应用程序。在 Spring Boot 的开发过程中,使用注解可以大大简化开发工作,以下是常用的 Spring Boot 注解:
- @SpringBootApplication:标识 Spring Boot 应用的主类,兼有 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的功能。
- @RestController:使一个类成为 REST 风格的 Spring MVC 控制器,等价于添加 @Controller 和 @ResponseBody 注解。
- @RequestMapping:用于映射 HTTP 请求到控制器的处理方法上,可以用来设置 URL、请求参数、请求方法、请求头等属性。
- @PathVariable:用于将 URI 模板变量映射到控制器处理方法的参数上。
- @RequestParam:用于将请求参数映射到控制器处理方法的参数上。
- @Autowired:用于自动注入 Spring Bean。
- @Qualifier:在自动注入 Bean 的基础上,按照 Bean 名称或 qualifying annotation 进行限定。
- @ConfigurationProperties:用于将配置文件中的属性映射到 Bean 的属性上。
- @Bean:用于在 Spring 容器中注册 Bean。
- @Component:通用的 Spring 组件注解。
二、常用注解的使用示例
1、@RestController 和 @RequestMapping
以下示例展示了如何使用 @RestController 和 @RequestMapping 实现一个简单的控制器,输出 "Hello, World!":
@RestController public class GreetingController { @RequestMapping("/hello") public String hello() { return "Hello, World!"; } }
2、@PathVariable 和 @RequestParam
以下示例展示了如何使用 @PathVariable 和 @RequestParam 处理 URL 上的参数,并输出结果:
@RestController public class UserController { @RequestMapping("/users/{id}") public String getUserInfo(@PathVariable Long id, @RequestParam String name) { return "User #" + id + " name is " + name; } }
3、@Autowired 和 @Qualifier
以下示例展示了如何使用 @Autowired 和 @Qualifier 自动注入 Spring Bean,并通过限定名称输出 Bean 的属性值:
@Component public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } @Service public class UserService { @Autowired @Qualifier("user") // 限定名称为 "user" 的 Bean private User user; public String sayHello() { return "Hello, " + user.getName() + "!"; } } @Configuration public class AppConfig { @Bean public User user() { User user = new User(); user.setName("Tom"); return user; } } @RestController public class UserController { @Autowired private UserService userService; @RequestMapping("/hello") public String hello() { return userService.sayHello(); } }
4、@ConfigurationProperties 和 @Value
以下示例展示了如何使用 @ConfigurationProperties 将配置文件中的属性映射到 Bean 的属性上,并使用 @Value 注解输出配置文件的属性值:
@Configuration @ConfigurationProperties(prefix = "my.config") public class MyConfig { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } @RestController public class MyController { @Autowired private MyConfig myConfig; @Value("${my.config.desc}") private String desc; @RequestMapping("/hello") public String hello() { return "Hello, " + myConfig.getName() + "! " + desc; } }
三、小结
Spring Boot 通过注解的方式,极大地简化了常规的配置工作,从而提高了开发效率。本文介绍了常用的 Spring Boot 注解,并且给出了相关的代码示例,以帮助读者更好地理解和使用 Spring Boot。