Spring Boot是一个基于Spring框架的开发框架,它提供了一种简化的方式来配置和部署Spring应用程序。Spring Boot使用注解来简化配置和开发过程,以下是所有常用的注解及其使用方法演示:
1. @SpringBootApplication:
@SpringBootApplication 是一个注解,它被用于 Spring Boot 应用程序的主类上。它组合了多个注解,包括:
- @Configuration:表明该类是 Spring 应用程序上下文的配置类。
- @EnableAutoConfiguration:自动配置 Spring Boot 应用程序的配置。
- @ComponentScan:扫描当前包及其子包下所有的 Spring 组件。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
使用 @SpringBootApplication 注解的主要目的是简化 Spring Boot 应用程序的配置。通过使用该注解,开发人员不需要在主类上使用多个注解,而是只需要使用一个注解即可实现应用程序的配置和启动。
2. @Configuration:这个注解用于标记一个类,它表示这个类是一个配置类,它会被Spring容器扫描并加载。可以在其中定义Bean和配置信息。
@Configuration
public class AppConfig {
// 配置Bean
@Bean
public UserService userService() {
return new UserServiceImpl();
}
}
总之 @Configuration注解的作用是在spring中定义配置类用于管理Bean的创建和配置
3. @EnableAutoConfiguration:这个注解用于自动配置Spring应用程序。它会根据应用程序的依赖关系和配置文件来自动配置应用程序。
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4. @ComponentScan:@ComponentScan(param)告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器,param即用来指定扫描包的范围。
@ComponentScan(basePackages = "com.example")
public class AppConfig {
// 配置Bean
}
此注解一般和@Configuration注解一起使用,指定Spring扫描注解的package。如果没有指定包,那么默认会扫描此配置类所在的package。
5. @RestControll
首先他是一个类似于@controller和@Service的构造型注解,能够让类被组件扫描功能发现。但是,与REST最相关在于@RestController会告诉Spring,控制器中所有的处理器方法的返回值都要直接写入响应体中,而不是将值放到模型中并传递给一个视图以便于渲染。
@RestController
public class UserController {
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
// 获取用户信息
return userService.getUserById(id);
}
}
作为替代方案就是@Controller加上@Response。
6. @RequestMapping:它的作用是将HTTP请求映射到Controller中的处理方法上。 它可用于类、方法及方法参数上,用于定义请求的URL和HTTP请求方法 (GET、POST等),从而实现请求的分发处理。 通过这个注解,我们可以更方便地管理我们的请求映射,并且可以提高代码的可读性和可维护性。
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 获取用户信息
return userService.getUserById(id);
}
}
7. @Autowired:注解是Spring框架的一部分,用于自动装配(自动注入)Spring Bean到其他Bean中。 它的主要作用是帮助我们消除手动配置Bean依赖关系的繁琐工作,使代码更加简洁和可维护。
@RestController
public class UserController {
private final UserService userService;@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
}
8. @Value:
-
@Value(“#{}”) 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量
-
用 @Value(“${app.name}”)注解从配置文件读取值的用法
@Component
public class AppConfig {
@Value("${app.name}")
private String name;// getters and setters
}
9. @ConfigurationProperties:这个注解用于将配置文件中的属性绑定到一个JavaBean中。可以通过@ConfigurationProperties注解来指定属性的前缀和属性名。
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private String version;
// getters and setters
}
10. @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@Configuration
public class AppConfig {
// 配置Bean
@Bean
public UserService userService() {
return new UserServiceImpl();
}
}
以上是常用的Spring Boot注解及其使用方法的演示。通过使用这些注解,可以简化配置和开发过程,提高开发效率。