Spring Boot 注解解读详解

简介: Spring Boot提供了大量的注解来简化Spring应用的开发。下面我们将详细介绍一些最常用的Spring Boot注解。一、核心注解1. @SpringBootApplication这是一个复合注解,用于标记应用的主类。它包含了以下三个注解:

Spring Boot提供了大量的注解来简化Spring应用的开发。下面我们将详细介绍一些最常用的Spring Boot注解。

一、核心注解

1. @SpringBootApplication

这是一个复合注解,用于标记应用的主类。它包含了以下三个注解:

@SpringBootConfiguration:等同于Spring的@Configuration,标明该类是配置类,并会把该类作为spring容器的源。

@EnableAutoConfiguration:启动自动配置,让Spring Boot根据类路径和定义的bean自动配置应用。

@ComponentScan:让Spring去扫描当前包及其子包下的类,并注册bean。

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

2. @Configuration

用于定义配置类,可替代XML配置文件。被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

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

二、Web开发相关注解

1. @RestController

这是一个复合注解,等同于@Controller@ResponseBody的组合,表明这个类是一个全RESTful的控制器,不返回视图,只返回数据。

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

2. @RequestMapping

用于映射web请求,它有很多选项,包括指定HTTP方法、URL、请求参数、头部信息等。同时也有一些简化版的注解,如@GetMapping, @PostMapping, @PutMapping, @DeleteMapping。

@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<User> getUsers() {
    // ...
}

3. @PathVariable

用于将请求URL中的模板变量映射到控制器处理方法的参数上。

@GetMapping("/users/{id}")
public User getUser(@PathVariable String id) {
    // ...
}

三、依赖注入相关注解

1. @Autowired

用于自动装配bean,可以用在构造器、属性、setter方法上。

@Autowired
private MyService myService;

2. @Bean

用于声明一个bean,它会被Spring容器所管理。

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

3. @Component, @Service, @Repository, @Controller

这些注解用于定义bean,可以自动被Spring扫描和管理。其中,@Component是通用注解,其他三个注解是具有特定语义的注解:

`

@Service`:用于标注业务层组件;


@Controller:用于标注控制层组件(如Spring MVC的控制器);

@Repository:用于标注数据访问组件,即DAO组件。

这只是Spring Boot中众多注解中的一部分,还有很多其他有用的注解,如@EnableConfigurationProperties, @Profile, @PropertySource等,你可以根据自己的需求进行学习和使用。希望这篇文章对你理解Spring Boot中的注解有所帮助。

相关文章
|
5天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
21 0
|
24天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
12天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
36 4
SpringBoot必须掌握的常用注解!
|
14天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
54 2
|
14天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
28 1
|
29天前
|
架构师 Java 开发者
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
在40岁老架构师尼恩的读者交流群中,近期多位读者成功获得了知名互联网企业的面试机会,如得物、阿里、滴滴等。然而,面对“Spring Boot自动装配机制”等核心面试题,部分读者因准备不足而未能顺利通过。为此,尼恩团队将系统化梳理和总结这一主题,帮助大家全面提升技术水平,让面试官“爱到不能自已”。
得物面试:Springboot自动装配机制是什么?如何控制一个bean 是否加载,使用什么注解?
|
9天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
8 0
|
1月前
|
XML Java 数据库
Spring boot的最全注解
Spring boot的最全注解
|
21天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于注解配置的程序--源码解析
手动开发-简单的Spring基于注解配置的程序--源码解析
45 0