Java Spring Boot的核心注解是什么,它是由哪几个注解组成的
2024-01-03 13:31:51
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会自动扫描并加载这些注解标记的类,并进行相应的配置和初始化。
文章来源:https://blog.csdn.net/sanmansan/article/details/135282110
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!