Java Spring Boot的核心注解是什么,它是由哪几个注解组成的
Spring Boot的核心注解主要包括以下几个:
-
@SpringBootApplication: 这是一个复合注解,包含了多个注解,用于标识一个Spring Boot应用。它的定义如下:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { /* ... */ }
这个注解包含了以下三个注解:
- @SpringBootConfiguration: 标识该类是Spring Boot的配置类。
- @EnableAutoConfiguration: 启用自动配置,Spring Boot会根据项目的依赖自动配置应用的上下文。
- @ComponentScan: 开启组件扫描,扫描指定包及其子包下的被@Component等注解标记的类。
-
@RestController: 标识一个类是RESTful风格的控制器,用于处理HTTP请求,相当于@Controller和@ResponseBody的组合。
-
@RequestMapping: 映射HTTP请求到控制器处理方法。用于类和方法上,可以指定请求的路径、HTTP方法等。
-
@Autowired: 用于进行依赖注入,可以标注在字段、构造方法、Setter方法上。
-
@Service、@Repository、@Component: 用于标识一个类是服务类、仓储类或通用组件,分别用于标注服务层、数据访问层和通用组件。
-
@Configuration: 用于定义配置类,替代传统的XML配置文件。
下面是一个简单的Spring Boot应用的示例,演示了这些核心注解的使用:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@RestController
@RequestMapping("/api")
class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
在这个例子中,@SpringBootApplication
注解标识了主应用类,@RestController
和@RequestMapping
注解标识了一个简单的RESTful风格的控制器。当应用启动时,Spring Boot会自动扫描并加载这些注解标记的类,并进行相应的配置和初始化。