Spring Boot 常见的底层注解剖析

Spring Boot 是一个用于创建独立的、基于Spring框架的Java应用程序的框架。它提供了许多注解,用于配置和定制应用程序的行为。以下是一些常见的Spring Boot底层注解的剖析:

常见的Spring Boot底层注解的剖析

  1. @SpringBootApplication:这是一个组合注解,用于标记一个主要的Spring Boot应用程序类。它包括@Configuration@EnableAutoConfiguration@ComponentScan三个注解,用于启用自动配置、组件扫描和配置类的定义。
@SpringBootApplication
public class MyApp {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(MyApp.class, args);
    }
}
  1. @Configuration:用于将一个类标记为配置类,表示它包含一个或多个@Bean注解的方法,用于定义应用程序的配置。
@Configuration
public class AppConfig {
    
    
    @Bean
    public MyService myService() {
    
    
        return new MyServiceImpl();
    }
}
  1. @EnableAutoConfiguration:用于启用Spring Boot的自动配置机制。它会根据类路径上的依赖和其他条件,自动配置应用程序的各种功能。
@EnableAutoConfiguration
public class MyApp {
    
    
    // ...
}
  1. @ComponentScan:用于指定Spring容器要扫描的包,以查找带有@Component@Service@Repository等注解的类,并将它们注册为Spring的Bean。
@ComponentScan("com.example")
public class MyApp {
    
    
    // ...
}
  1. @RestController:用于标记一个类,表示它是一个RESTful风格的控制器。它结合了@Controller@ResponseBody注解,使得类中的方法可以直接返回响应内容。
@RestController
public class MyController {
    
    
    @RequestMapping("/hello")
    public String hello() {
    
    
        return "Hello, World!";
    }
}
  1. @RequestMapping:用于将一个方法映射到指定的URL路径。可以用于类级别和方法级别,用于定义控制器的请求处理方法。
@RestController
@RequestMapping("/api")
public class MyController {
    
    
    @GetMapping("/hello")
    public String hello() {
    
    
        return "Hello, World!";
    }
}

以上是一些常见的Spring Boot底层注解的剖析。这些注解可以帮助开发者更方便地配置和定制Spring Boot应用程序的行为。

Spring Boot注解 完整的RESTful API

下面是一个简单的示例,演示了如何使用Spring Boot注解完成一个简单的RESTful API。

首先,创建一个Spring Boot项目,并添加以下依赖项到pom.xml文件中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

然后,创建一个名为UserController的控制器类,并使用@RestController@RequestMapping注解进行标记:

@RestController
@RequestMapping("/api/users")
public class UserController {
    
    
    private List<User> users = new ArrayList<>();

    @GetMapping
    public List<User> getUsers() {
    
    
        return users;
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
    
    
        users.add(user);
        return user;
    }
}

在上面的示例中,UserController类定义了两个方法。getUsers()方法使用@GetMapping注解将其映射到/api/users路径,并返回一个包含所有用户的列表。createUser()方法使用@PostMapping注解将其映射到相同的路径,并接受一个User对象作为请求体,并将其添加到用户列表中。

接下来,创建一个名为User的简单Java类,用于表示用户对象:

public class User {
    
    
    private String name;
    private int age;

    // 省略构造函数、getter和setter方法
}

最后,在应用程序的入口类中,使用@SpringBootApplication注解标记,并添加一个main()方法来启动应用程序:

@SpringBootApplication
public class MyApp {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(MyApp.class, args);
    }
}

现在,运行应用程序,并使用任何HTTP客户端(如Postman)来测试API。可以使用GET请求访问http://localhost:8080/api/users来获取所有用户的列表,使用POST请求访问http://localhost:8080/api/users并在请求体中添加一个JSON对象来创建一个新的用户。

这个示例演示了如何使用Spring Boot注解创建一个简单的RESTful API。通过使用注解,可以方便地定义请求处理方法和路由映射,简化了开发过程。

其它常用注解完整示例

下面是一个完整的示例,演示了Spring Boot中常用注解的使用:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@SpringBootApplication
public class DemoApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(DemoApplication.class, args);
    }

    @RestController
    @RequestMapping("/api/users")
    public class UserController {
    
    
        private List<User> users = new ArrayList<>();

        @GetMapping
        public List<User> getUsers() {
    
    
            return users;
        }

        @PostMapping
        public User createUser(@RequestBody User user) {
    
    
            users.add(user);
            return user;
        }
    }

    public class User {
    
    
        private String name;
        private int age;

        public User() {
    
    }

        public User(String name, int age) {
    
    
            this.name = name;
            this.age = age;
        }

        // 省略getter和setter方法
    }

    @Configuration
    public class AppConfig {
    
    
        @Bean
        public MyService myService() {
    
    
            return new MyServiceImpl();
        }
    }

    public interface MyService {
    
    
        String getMessage();
    }

    public class MyServiceImpl implements MyService {
    
    
        @Override
        public String getMessage() {
    
    
            return "Hello, World!";
        }
    }
}

在上面的示例中,我们定义了一个DemoApplication类,并使用@SpringBootApplication注解标记它作为Spring Boot应用程序的入口点。

DemoApplication类中,我们定义了一个UserController类,并使用@RestController@RequestMapping注解将其标记为RESTful控制器。UserController类中的getUsers()方法使用@GetMapping注解,将其映射到/api/users路径,并返回用户列表。createUser()方法使用@PostMapping注解,将其映射到相同的路径,并接受一个User对象作为请求体,并将其添加到用户列表中。

我们还定义了一个User类,用于表示用户对象。

DemoApplication类中,我们还定义了一个AppConfig类,并使用@Configuration注解将其标记为配置类。在AppConfig类中,我们使用@Bean注解定义了一个myService()方法,它返回一个MyServiceImpl对象。这样,MyServiceImpl类就会被注册为Spring的Bean。

最后,我们定义了一个MyService接口和一个MyServiceImpl类,用于演示依赖注入和Bean的注册。

通过运行上述示例,我们可以访问http://localhost:8080/api/users来获取用户列表,并使用POST请求向相同的路径创建一个新的用户。

这个示例演示了Spring Boot中常用注解的使用。通过使用这些注解,我们可以轻松地创建RESTful API、配置Bean和实现依赖注入。

猜你喜欢

转载自blog.csdn.net/ACCPluzhiqi/article/details/132068636
今日推荐