SpringBoot常用注解

@SpringBootApplication

组合注解,SpringBoot应用程序的入口类。用于启动程序。

复制代码
@SpringBootApplication
public class CloudElasticSearchApplication {
    public static void main(String[] args) {
        SpringApplication.run(CloudElasticSearchApplication.class, args);
    }
}

内部包括@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。

复制代码
@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}
)}
)

@Configuration用于创建和配置Spring应用程序上下文中的Bean。

@EnableAutoConfiguration用于自动添加所需的依赖项和配置。

@ComponentScan用于扫描当前包及其子包中的所有类,如果某些类使用了@Component、@Controller等注解,注入Spring容器中。

@RestController

@RestController处理请求时,会自动将方法的返回值转换为JSON格式的响应体,并返回给客户端。其包含了@Controller和@ResponseBody功能,如下所示:

复制代码
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
    )
    String value() default "";
}

@Controller将该类声明进入Spring容器中进行管理

@ResponseBody表明该类的所有方法的返回值都直接进行提交而不经过视图解析器,且返回值的数据自动封装为json的数据格式

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping

@RequestMapping用来处理请求地址映射的注解,可以用在类或方法上。@GetMapping则是在其基础上指定方法为GET(method=RequestMethod.GET),用于映射HTTP GET请求。同理@PostMapping、@PutMapping、@DeleteMapping也是如此。例如@GetMapping的内部实现如下:

复制代码
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
    method = {RequestMethod.GET}
)
public @interface GetMapping {......}

具体使用:

复制代码
@RestController
@RequestMapping("/home")
public class ElasticSearchClientConfig {
    @GetMapping("/user")
    public String test(){
        return "nih";
    }
}

@RequestParam

用于获取请求参数的值。可以通过@RequestParam("id")或者@RequestParam(value = "id")指定传入的参数名。

复制代码
@RestController
@RequestMapping("/home")
public class ElasticSearchClientConfig {
    @GetMapping("/user")
    public String test(@RequestParam(value = "name")String name ){
        return "nih";
    }
}

@Slf4j

Lombok框架中的注解,用来生成日志记录器。

复制代码
@Slf4j
public class ElasticSearchClientConfig {
    public String test(){
        log.debug("1");
        log.info("2");
        log.error("3");
        return "nih";
    }
}

@Data、@NoArgsConstructor、@AllArgsConstructor

@Data用于自动生成实体类中get()、set()、toString()、hashCode()和equals()方法。@NoArgsConstructor提供类的无参构造方法。@AllArgsConstructor提供类的全参构造方法。

复制代码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
	private String name;
    private String password;
}
相关推荐
爱敲代码的小杨.3 分钟前
【Spring】Spring Web MVC
前端·spring·mvc
杨运交18 分钟前
[069][公共模块]Spring Boot 全局异常处理与参数校验实战(下):校验异常精细化处理与 WebFlux 适配
java·spring boot·后端
行者-全栈开发31 分钟前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
spring boot·ffmpeg·异步处理·视频压缩·hls切片·批量任务·redis队列
Raas10037 分钟前
MAI Gateway(魔芋企业级AI网关)对比分析:AI网关和OpenRouter区别?企业级能力差距一览
java·服务器·网络·人工智能·gateway·ai网关·mai gateway
Andya_net44 分钟前
Spring Boot | 条件注解完全指南:从 @Conditional 到 @ConditionalOnExpression 的原理、实践与避坑
spring boot·后端·python
APItesterCris1 小时前
告别人工盯品!借助 Open‑Claw 快速搭建电商商品全自动监控与数据分析系统(完整实操代码)
java·大数据·前端·数据库
青山木1 小时前
Hot 100 --- 跳跃游戏 II
java·数据结构·算法·leetcode·贪心算法
ly76891 小时前
Spring 中的 @Configuration 与 @Component 差异:为何代理时机决定 Bean 生命周期行为
java·后端·spring·注解·代理·bean生命周期
qq_452396231 小时前
第十二篇:《数据采集:Grafana Alloy、Fluent Bit、Vector 的选型与配置》
java·贪心算法·grafana
珍珠先生1 小时前
P16 · IDEA 启动报错:找不到或无法加载主类
java