以下是Spring Boot中常用的注解及其详细解释以及相应的代码示例:
@SpringBootApplication
: 这个注解用于标识一个Spring Boot应用的主类。它整合了 @Configuration
,@EnableAutoConfiguration
和 @ComponentScan
。
1 2 3 4 5 6 | @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication. class , args); } } |
@RestController
: 这个注解用于定义一个RESTful控制器,在Spring MVC中它表示所有的处理方法都返回一个Restful风格的数据。
1 2 3 4 5 6 7 | @RestController public class HelloController { @GetMapping ( "/hello" ) public String hello() { return "Hello, World!" ; } } |
@Service
: 这个注解用于标识一个类是业务逻辑层的组件。
1 2 3 4 | @Service public class UserService { // Service logic here } |
@Repository
: 这个注解用于标识一个类是数据访问层的组件。
1 2 3 4 | @Repository public class UserRepository { // Data access logic here } |
@Component
: 这个注解用于标识一个类是Spring的组件。
1 2 3 4 | @Component public class MyComponent { // Component logic here } |
@Autowired
: 这个注解用于自动装配Spring Bean。
1 2 3 4 5 6 7 | @Service public class UserService { @Autowired private UserRepository userRepository; // Service logic here } |
@Qualifier
: 当多个实现类满足一个接口时,可以与 @Autowired
配合使用以指定具体要注入的Bean。
1 2 3 4 5 6 7 8 | @Service public class UserService { @Autowired @Qualifier ( "userDatabaseRepository" ) private UserRepository userRepository; // Service logic here } |
@RequestMapping
: 这个注解用于将HTTP请求映射到处理方法上。
1 2 3 4 5 6 7 8 | @RestController @RequestMapping ( "/api" ) public class MyController { @GetMapping ( "/hello" ) public String hello() { return "Hello, World!" ; } } |
@GetMapping
, @PostMapping
, @PutMapping
, @DeleteMapping
: 这些注解用于将HTTP GET、POST、PUT、DELETE 请求映射到处理方法上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | @RestController @RequestMapping ( "/api" ) public class MyController { @GetMapping ( "/get" ) public String get() { return "GET Request" ; } @PostMapping ( "/post" ) public String post() { return "POST Request" ; } @PutMapping ( "/put" ) public String put() { return "PUT Request" ; } @DeleteMapping ( "/delete" ) public String delete() { return "DELETE Request" ; } } |
@RequestParam
: 这个注解用于从请求中获取参数的值。
1 2 3 4 | @GetMapping ( "/user" ) public String getUserById( @RequestParam Long id) { // logic to fetch user by id } |
@PathVariable
: 这个注解用于从请求的URL中获取参数的值。
1 2 3 4 | @GetMapping ( "/user/{id}" ) public String getUserById( @PathVariable Long id) { // logic to fetch user by id } |
@ResponseBody
: 这个注解用于将方法返回的对象转换为HTTP响应的主体部分。
1 2 3 4 5 6 | @GetMapping ( "/user" ) @ResponseBody public User getUser() { // logic to fetch user return user; } |
@RequestBody
: 这个注解用于将HTTP请求的主体部分转换为方法参数。
1 2 3 4 | @PostMapping ( "/user" ) public String addUser( @RequestBody User user) { // logic to add user } |
@ResponseStatus
: 这个注解用于指定方法返回的HTTP状态码。
1 2 3 4 | @ResponseStatus (HttpStatus.NOT_FOUND) public class ResourceNotFoundException extends RuntimeException { // Exception handling logic here } |
@ExceptionHandler
: 这个注解用于定义全局异常处理方法。
1 2 3 4 5 6 7 8 | @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler (Exception. class ) public String handleException(Exception ex) { // Exception handling logic here return "error" ; } } |
@Configuration
: 这个注解用于定义配置类,通常与 @Bean
注解一起使用。
1 2 3 4 5 6 7 | @Configuration public class AppConfig { @Bean public UserService userService() { return new UserService(); } } |
@Value
: 这个注解用于从配置文件中获取值。
1 2 3 4 5 6 7 | @Component public class MyComponent { @Value ( "${my.property}" ) private String myProperty; // Component logic here } |
以上是一些常见的Spring Boot注解及其用法示例。在实际开发中,可能还会使用到其他的注解,具体根据项目需求和设计选择。