Spring Boot 是一个用来简化 Spring 应用程序初始搭建以及开发过程的框架,它集成了大量常用的第三方库配置。在 Spring Boot 中,有许多常用的注解,它们使得我们的开发过程更加简单和高效。本文将详细介绍这些常用的注解,并提供相应的 Java 示例。
1. @SpringBootApplication
@SpringBootApplication
是一个复合注解,它包含了以下三个注解:
@SpringBootConfiguration
: 表示当前类是配置类,并会将其添加到 Spring 上下文中。@EnableAutoConfiguration
: 启用 Spring Boot 的自动配置功能。@ComponentScan
: 启用组件扫描,这样你写的代码就会自动被 Spring 发现并添加到 Spring 上下文中。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2. @RestController
@RestController
是一个复合注解,它等同于 @Controller
和 @ResponseBody
的组合,表示这是一个控制器 Bean,并且是以 Rest 的方式读取/写入数据。
@RestController
public class MyController {
@RequestMapping("/")
public String index() {
return "Welcome to Spring Boot!";
}
}
3. @RequestMapping
@RequestMapping
注解用于映射 Web 请求。它可以作用在类和方法上。作用在类上时,表示类中的所有响应方法都是以该地址作为父路径;作用在方法上时,处理对应的请求地址。它是一个复合注解,包含了 @GetMapping
, @PostMapping
, @PutMapping
, @DeleteMapping
, @PatchMapping
。
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
4. @Autowired
@Autowired
注解用于自动装配 Spring 容器中的 Bean。当你创建一个对象,然后需要另一个对象帮助你做一些事情时,这就是所谓的依赖。这是面向对象编程的基本概念。Spring IoC 容器就是一个大工厂,用来生成需要的对象和帮助你注入依赖。
@RestController
public class MyController {
private final MyService myService;
@Autowired
public MyController(MyService myService) {
this.myService = myService;
}
//...
}
5. @Component, @Service, @Repository, @Controller
这四个注解都是用于标识 Spring 组件的。
@Component
是通用注解,其他三个注解都是这个注解的特化形式。@Repository
用于标识持久层组件。@Service
用于标识服务层(业务层)组件。@Controller
用于标识表现层(web 层)组件。
@Component
public class MyComponent {
//...
}
@Repository
public class MyRepository {
//...
}
@Service
public class MyService {
//...
}
@Controller
public class MyController {
//...
}
6. @Value
@Value
注解用于将一个属性值注入到 Bean 中,它可以用在字段上,也可以用在方法上。
@Service
public class MyService {
@Value("${my.property}")
private String myProperty;
//...
}
7. @ConfigurationProperties
@ConfigurationProperties
注解用于将配置文件的属性值批量注入到一个 Bean 中。
@ConfigurationProperties(prefix = "my")
public class MyProperties {
private String property;
// getters and setters
}
8. @Profile
@Profile
注解用于指定在哪个环境下会加载这个 Bean。可以用在类上,也可以用在方法上。
@Configuration
@Profile("dev")
public class DevConfig {
//...
}
这些就是 Spring Boot 中的常用注解,它们都是用于简化 Spring 应用程序的开发和配置的。
👉 💐🌸 公众号请关注 "果酱桑", 一起学习,一起进步! 🌸💐