Java、Java EE、Spring和Spring Boot核心注解

简介

文章迁移至个人博客

此页面包含常用 JavaJava EESpringSpring BootJPA 常用注解的一站式说明。

Spring核心注解

@Component注解

@Component 注解表明被注解的类是一个“spring bean/组件”。@Component注解告诉Spring容器自动创建Spring bean。

@Autowired注解

@Autowired 注解用于自动注入 bean。@Autowired 注解用于构造函数注入、setter 注入和字段注入

@Qualifier注解

@Qualifier 注解与 Autowired 结合使用,以避免当我们为同一类型配置两个或多个 bean 时发生混淆。

@Primary注解

当存在多个相同类型的 bean 时,我们使用 @Primary 注解来对某个 bean 给予更高的优先级。

@Bean注解

@Bean注解表示一个方法产生一个由Spring容器管理的bean。@Bean 注解通常在 Configuration 类中声明以创建 Spring Bean 定义。

@Lazy 注解

默认情况下,Spring 在应用程序上下文的启动/引导时急切地创建所有单例 bean。您可以使用 @Lazy 注解延迟(按需)加载 Spring beans。

@Scope注解

@Scope 注解用于定义 bean 的范围。我们使用@Scope来定义@Component类或@Bean定义的范围。

@Value注解

Spring @Value 注解用于为变量和方法参数分配默认值。

@Value 注解主要用于从属性文件中获取特定属性键的值。我们可以使用@Value注解读取spring环境变量以及系统变量。

@PropertySource注解

Spring @PropertySource 注解用于向 Spring 环境提供属性文件。Spring PropertySource 注解是可重复的,这意味着一个 Configuration 类上可以有多个 PropertySource。

Spring MVC Web 注解

@Controller注解

Spring提供了@Controller注解来使Java类作为Spring MVC控制器。@Controller 注解指示特定类充当控制器的角色。

@ResponseBody注解

@ResponseBody 注解告诉控制器返回的对象会自动序列化为 JSON 并传回 HttpResponse 对象。

@RestController注解

Spring 4.0 引入了 @RestController,@Controller 的一个专门版本,它是一个方便的注解,除了添加 @Controller 和 @ResponseBody 注解之外什么也不做。

@RequestMapping注解

@RequestMapping是Spring MVC中最常见、使用最广泛的注解。它用于将 Web 请求映射到特定的处理程序类和/或处理程序方法。

@GetMapping注解

GET HTTP 请求用于获取单个或多个资源,@GetMapping注解用于将 HTTP GET 请求映射到特定的处理程序方法。

@PostMapping注解

POST HTTP 方法用于创建资源和@PostMapping注解,用于将 HTTP POST 请求映射到特定处理程序方法。

@PutMapping注解

PUT HTTP 方法用于更新资源和@PutMapping注解,用于将 HTTP PUT 请求映射到特定处理程序方法。

@DeleteMapping注解

DELETE HTTP 方法用于删除资源,@DeleteMapping注解用于将 HTTP DELETE 请求映射到特定处理程序方法。

@PatchMapping注解

PATCH HTTP 方法用于部分更新资源,@PatchMapping注解用于将 HTTP PATCH 请求映射到特定处理程序方法。

@PathVariable注解

Spring boot @PathVariable 注解用于方法参数,将其绑定到 URI 模板变量的值。

@ResponseStatus注解

@ResponseStatus 注解是一个 Spring 框架注解,用于自定义 Spring MVC 或 Spring Boot 应用程序中控制器方法返回的 HTTP 响应状态代码。

@Service注解

@Service注解用于在Service层创建Spring bean。

@Repository注解

@Repository 用于为 DAO 层的存储库创建 Spring bean。

@Controller注解

@Controller用于在控制器层创建Spring bean。

Spring Boot注解

@SpringBootApplication注解

@SpringBootApplication注解是Spring Boot框架中的核心注解。它用于标记 Spring Boot 应用程序的主类。该注解是其他三个注解的组合:@Configuration、@EnableAutoConfiguration 和@ComponentScan。

@EnableAutoConfiguration注解

@EnableAutoConfiguration 注解启用 Spring Boot 的自动配置功能,该功能根据类路径依赖项和环境自动配置应用程序。

@Async注解

可以在方法上提供 @Async 注解,以便异步调用该方法。

Spring Data JPA 注解

@Query注解

在 Spring Data JPA 中,@Query注解用于定义自定义查询。它允许开发人员执行 JPQL(Java 持久性查询语言)和本机 SQL 查询。

Spring Boot测试注解

@SpringBootTest注解

Spring Boot 为集成测试提供了 @SpringBootTest 注解。此注解创建应用程序上下文并加载完整的应用程序上下文。

@DataJpaTest注解

Spring Boot 提供了 @DataJpaTest 注解来测试持久层组件,这些组件将自动配置内存嵌入式数据库以进行测试。

@WebMvcTest注解

@WebMvcTest 注解用于在 Spring MVC 控制器上执行单元测试。它允许您在受控和隔离的环境中测试控制器的行为、请求映射和 HTTP 响应。

JPA 和 Hibernate 注解

@Id

将字段标记为实体的主键。

@GenerateValue

指定生成主键值的策略。

@Entity

指定类是一个实体,并映射到数据库表。

@Table

指定与实体关联的表名。

@Column注解

@Column: 指定数据库列的映射。

JPA @Transient 注解

@Transient: 排除某个字段被持久保存在数据库中。

JPA @OneToOne 注解

@OneToOne: 定义两个实体之间的一对一关系。

JPA @OneToMany 注解

@OneToMany: 定义两个实体之间的一对多关系。

JPA @ManyToOne 注解

@ManyToOne: 定义两个实体之间的多对一关系。

JPA @ManyToMany 注解

@ManyToMany: 定义两个实体之间的多对多关系。

JPA @JoinTable 注解

@JoinTable: JPA中的@JoinTable注解用于自定义关联表,该关联表保存多对多关系中两个实体之间的关系。

Hibernate @PrimaryKeyJoinColumn 注解

JPA(Java Persistence API)和 Hibernate 中的@PrimaryKeyJoinColumn注解用于继承关系和表映射的上下文中,特别是在连接策略中 。

Hibernate @Embeddable 和 @Embedded 注解

  • @Embeddable:该注解用于将一个类声明为Embeddable类。
  • @Embedded:该注解用在实体类中,指定将要嵌入的字段。

Servlet注解

@WebServlet注解

@WebServlet 注解用于定义 Web 应用程序中的 Servlet 组件。

@WebInitParam注解

@WebInitParam 注解用于指定必须传递给 Servlet 或 Filter 的任何初始化参数。

@WebListener 注解

@WebListener 注解用于注解侦听器以获取特定 Web 应用程序上下文上的各种操作的事件。

@WebFilter注解

@WebFilter 注解用于在 Web 应用程序中定义过滤器。

@MultipartConfig注解

当在 Servlet 上指定时,@MultipartConfig 注解表明它期望的请求是 multipart/form-data 类型。

Java注解

@Deprecated

程序员不鼓励使用带有 @Deprecated 注解的程序元素,通常是因为它很危险,或者因为存在更好的替代方案。

@Override

指示方法声明旨在覆盖超类型中的方法声明。

@FunctionalInterface

一种信息注解类型,用于指示接口类型声明旨在成为 Java 语言规范定义的函数接口。表明一个接口是一个函数式接口并且只包含一个抽象方法。

@SafeVarargs

程序员断言带注解的方法或构造函数的主体不会对其varargs参数执行潜在的不安全操作。

@SuppressWarnings

指示应在带注解的元素(以及带注解的元素中包含的所有程序元素)中抑制指定的编译器警告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/12766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建自己的Git服务器

环境 服务端:Ubuntu 22.04 客户端:Win11_x64 前提条件:需要确保在Windows机器上能够ping通Ubuntu服务器, 并且服务端与客户端均已安装了Git软件 服务端上的配置操作 以Ubuntu服务器作为Git服务端的运行环境,并方便后期免密推…

kafka消费报错卡死:内存溢出OutOfMemoryError: Java heap space

文章目录 现象排查解决 现象 我们信控平台使用Java语言开发,Spring Cloud微服务架构,采用容器化部署,所有服务都部署在docker里面,使用docker-compose进行管理,使用portainer进行监控平台部署客户现场后,一…

如何做好IT类的技术面试

目录 一、IT行业的招聘渠道 二、如何做好技术面试官 三、谈谈IT行业如何做好招聘工作 四、面试IT公司的小技巧 五、面试有哪些常见的问题 六、关于面试的一些建议 面试可能是我们每个人都必须会遇到的事情,而技术面试更具有专业性,以下会从几个方面…

openGauss学习笔记-23 openGauss 简单数据管理-时间/日期函数和操作符

文章目录 openGauss学习笔记-23 openGauss 简单数据管理-时间/日期函数和操作符23.1 时间日期操作符23.2 时间/日期函数23.3 TIMESTAMPDIFF23.4 EXTRACT23.5 date_part openGauss学习笔记-23 openGauss 简单数据管理-时间/日期函数和操作符 23.1 时间日期操作符 用户在使用时…

【Java 高频面试闯关秘籍】大梦谁先觉,平生我自知

一、mysql使用innodb引擎,请简述mysql索引的最左前缀如何优化orderby语句? 关键点: (1)如果排序字段不在索引列上,filesort有两种算法:mysql就要启动双路排序和单路排序 (2&#x…

【系统监控程序】

用python编写一个系统监控程序,需要每隔一秒钟记录系统每个进程的资源占用和整体的资源占用情况,并输出成json,保存到文本文件。 import psutil import json import timedef get_process_usage():process_list []for proc in psutil.proces…

系统资源监控程序的改进

当需要监控硬盘读写和网络传输时,我们可以进一步使用psutil库来获取这些信息。以下是修改后的示例程序,增加了对硬盘读写和网络传输的监控: import psutil import json import timedef get_process_usage():process_list []for proc in psu…

解决分类任务中数据倾斜问题

大家好,在处理文本分类任务时,基准测试流行的自然语言处理架构的性能是建立对可用选项的理解的重要步骤。在这里,本文将深入探讨与分类相关的最常见的挑战之一——数据倾斜。如果你曾经将机器学习(ML)应用于真实世界的…

React Native RN state props

state: 是RN 专门用来标识是否重新渲染,通过属性的值来更新数据,React 内部会监听 state 的变化,一旦发生变化就会主动触发组件的 render() 方法来更新 Dom 结构,另外state是组件私有的,是没有办法通过其他…

VS+QT+PCL点云显示转网格表面体窗体实现

程序示例精选 VSQTPCL点云显示转网格表面体窗体实现 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQTPCL点云显示转网格表面体窗体实现>>编写代码&#xff0c;代码整洁&…

正则表达式常用字符及案例

引言 正则表达式是一种强大而灵活的工具&#xff0c;它在文本搜索和处理中起到了至关重要的作用。熟练掌握正则表达式的常用字符和使用方法&#xff0c;将能帮助开发者更加高效地进行模式匹配和字符串操作。本文将介绍一些常见的正则表达式字符&#xff0c;并给出一些实际案例…

watch避坑,使用computed进行处理数据

业务场景&#xff1a;在vue中监听el-input 中的字数有没有超过60&#xff0c;如果超过60字时将60后面的字变为 “>>” 符号&#xff0c;以此实现预览苹果手机推送摘要场景。 错误&#xff1a;开始的逻辑是使用watch监听&#xff0c;检查length超过60直接 加上符号&#x…

python 网络编程

TCP编程 客户端 创建TCP连接时&#xff0c;主动发起连接的叫做客户端&#xff0c;被动响应的叫做服务端。当定义一个Socket表示打开一个网络连接&#xff0c;创建一个Socket需要知道目标计算机的IP地址和端口号和对应的协议类型。 # 导入socket库: import socket# 创建一个s…

基于MSP432P401R爬坡小车【2020年电赛C题】

文章目录 一、任务清单1. 硬件部分2. 软件部分 二、OpenMV巡线三、舵机转向四、停止线识别五、技术交流 一、任务清单 1. 硬件部分 主控板&#xff1a; MSP432P401R数据显示&#xff1a; OLED电机&#xff1a; 霍尔编码器电机电池&#xff1a; 7.3V航模电池巡线&#xff1a; …

图像中不规则物体的长轴与短轴:OpenCV实现指南

1.首先&#xff0c;读取图像并将其转换为灰度图像。 2.进行图像预处理&#xff0c;包括使用高斯模糊和阈值化&#xff0c;以便更好地处理图像。 3.通过使用OpenCV的cv2.findContours()函数&#xff0c;找到图像中的所有轮廓。 4.遍历所有轮廓&#xff0c;如果轮廓点的数量大…

使用ajax进行前后端交互的方法

使用ajax进行前后端交互的方法&#xff1a;&#xff08;我只测试通了json对象作为参数的方式&#xff0c;其他方式我没有测试通过&#xff09; 1、前端方法&#xff1a; 传参方式&#xff1a;POST 请求类型&#xff1a;json对象 响应类型&#xff1a;json对象 function test() …

idea 里 controller service impl mapper xml 切换跳转快捷键

首先在controller层&#xff0c;对着接口点方法的方法上按着ctrl和鼠标左键&#xff0c;你会进入service层。 对着方法ctrlaltb不按鼠标&#xff0c;你会进入impl层。service层的方法上按ctrl和鼠标左键会回到controller&#xff0c;ctrlaltb不按鼠标也会进入到impl层,impl上的…

[Linux]线程基本知识

概念 进程 一个正在执行的程序&#xff0c;它是资源分配的最小单位 进程中的事情需要按照一定的顺序逐个进行 进程出现了很多弊端: 一是由于进程是资源拥有者&#xff0c;创建、撤消与切换存在较大的时空开销&#xff0c;因此需要引入轻型进程&#xff1b; 二是由于对称多…

localhost和127.0.0.1一样吗?

学习笔记&#xff0c;如有错误&#xff0c;感谢指出&#xff01; 文章目录 1. 对比方式一1.1 表示方式&#xff1a;1.2 主机名解析&#xff1a;1.3 IPv6 支持&#xff1a;1.4 可读性和易用性&#xff1a;1.5 小总结 2. 对比方式二2.1 原理不同2.2 概念不同2.3 指向不同 1. 对比…

C++:类和对象(下)---对类和对象深入一些的理解

文章目录 构造函数&#xff1f;初始化列表explicit关键字 匿名对象 构造函数&#xff1f; 初始化列表 前面已然介绍过构造函数&#xff0c;但并未完全结束&#xff0c;构造函数有很多种写法&#xff0c;有带缺省参数的&#xff0c;有全缺省的&#xff0c;不带缺省参数的…但用…