文章迁移至个人博客
此页面包含常用 Java、Java EE、Spring、 Spring Boot、JPA 常用注解的一站式说明。
@Component 注解表明被注解的类是一个“spring bean/组件”。@Component注解告诉Spring容器自动创建Spring bean。
@Autowired 注解用于自动注入 bean。@Autowired 注解用于构造函数注入、setter 注入和字段注入
@Qualifier 注解与 Autowired 结合使用,以避免当我们为同一类型配置两个或多个 bean 时发生混淆。
当存在多个相同类型的 bean 时,我们使用 @Primary 注解来对某个 bean 给予更高的优先级。
@Bean注解表示一个方法产生一个由Spring容器管理的bean。@Bean 注解通常在 Configuration 类中声明以创建 Spring Bean 定义。
默认情况下,Spring 在应用程序上下文的启动/引导时急切地创建所有单例 bean。您可以使用 @Lazy 注解延迟(按需)加载 Spring beans。
@Scope 注解用于定义 bean 的范围。我们使用@Scope来定义@Component类或@Bean定义的范围。
Spring @Value 注解用于为变量和方法参数分配默认值。
@Value 注解主要用于从属性文件中获取特定属性键的值。我们可以使用@Value注解读取spring环境变量以及系统变量。
Spring @PropertySource 注解用于向 Spring 环境提供属性文件。Spring PropertySource 注解是可重复的,这意味着一个 Configuration 类上可以有多个 PropertySource。
Spring提供了@Controller注解来使Java类作为Spring MVC控制器。@Controller 注解指示特定类充当控制器的角色。
@ResponseBody 注解告诉控制器返回的对象会自动序列化为 JSON 并传回 HttpResponse 对象。
Spring 4.0 引入了 @RestController,@Controller 的一个专门版本,它是一个方便的注解,除了添加 @Controller 和 @ResponseBody 注解之外什么也不做。
@RequestMapping是Spring MVC中最常见、使用最广泛的注解。它用于将 Web 请求映射到特定的处理程序类和/或处理程序方法。
GET HTTP 请求用于获取单个或多个资源,@GetMapping注解用于将 HTTP GET 请求映射到特定的处理程序方法。
POST HTTP 方法用于创建资源和@PostMapping注解,用于将 HTTP POST 请求映射到特定处理程序方法。
PUT HTTP 方法用于更新资源和@PutMapping注解,用于将 HTTP PUT 请求映射到特定处理程序方法。
DELETE HTTP 方法用于删除资源,@DeleteMapping注解用于将 HTTP DELETE 请求映射到特定处理程序方法。
PATCH HTTP 方法用于部分更新资源,@PatchMapping注解用于将 HTTP PATCH 请求映射到特定处理程序方法。
Spring boot @PathVariable 注解用于方法参数,将其绑定到 URI 模板变量的值。
@ResponseStatus 注解是一个 Spring 框架注解,用于自定义 Spring MVC 或 Spring Boot 应用程序中控制器方法返回的 HTTP 响应状态代码。
@Service注解用于在Service层创建Spring bean。
@Repository 用于为 DAO 层的存储库创建 Spring bean。
@Controller用于在控制器层创建Spring bean。
@SpringBootApplication注解是Spring Boot框架中的核心注解。它用于标记 Spring Boot 应用程序的主类。该注解是其他三个注解的组合:@Configuration、@EnableAutoConfiguration 和@ComponentScan。
@EnableAutoConfiguration 注解启用 Spring Boot 的自动配置功能,该功能根据类路径依赖项和环境自动配置应用程序。
可以在方法上提供 @Async 注解,以便异步调用该方法。
在 Spring Data JPA 中,@Query注解用于定义自定义查询。它允许开发人员执行 JPQL(Java 持久性查询语言)和本机 SQL 查询。
Spring Boot 为集成测试提供了 @SpringBootTest 注解。此注解创建应用程序上下文并加载完整的应用程序上下文。
Spring Boot 提供了 @DataJpaTest 注解来测试持久层组件,这些组件将自动配置内存嵌入式数据库以进行测试。
@WebMvcTest 注解用于在 Spring MVC 控制器上执行单元测试。它允许您在受控和隔离的环境中测试控制器的行为、请求映射和 HTTP 响应。
将字段标记为实体的主键。
指定生成主键值的策略。
指定类是一个实体,并映射到数据库表。
指定与实体关联的表名。
@Column: 指定数据库列的映射。
@Transient: 排除某个字段被持久保存在数据库中。
@OneToOne: 定义两个实体之间的一对一关系。
@OneToMany: 定义两个实体之间的一对多关系。
@ManyToOne: 定义两个实体之间的多对一关系。
@ManyToMany: 定义两个实体之间的多对多关系。
@JoinTable: JPA中的@JoinTable注解用于自定义关联表,该关联表保存多对多关系中两个实体之间的关系。
JPA(Java Persistence API)和 Hibernate 中的@PrimaryKeyJoinColumn注解用于继承关系和表映射的上下文中,特别是在连接策略中 。
@WebServlet 注解用于定义 Web 应用程序中的 Servlet 组件。
@WebInitParam 注解用于指定必须传递给 Servlet 或 Filter 的任何初始化参数。
@WebListener 注解用于注解侦听器以获取特定 Web 应用程序上下文上的各种操作的事件。
@WebFilter 注解用于在 Web 应用程序中定义过滤器。
当在 Servlet 上指定时,@MultipartConfig 注解表明它期望的请求是 multipart/form-data 类型。
程序员不鼓励使用带有 @Deprecated 注解的程序元素,通常是因为它很危险,或者因为存在更好的替代方案。
指示方法声明旨在覆盖超类型中的方法声明。
一种信息注解类型,用于指示接口类型声明旨在成为 Java 语言规范定义的函数接口。表明一个接口是一个函数式接口并且只包含一个抽象方法。
程序员断言带注解的方法或构造函数的主体不会对其varargs参数执行潜在的不安全操作。
指示应在带注解的元素(以及带注解的元素中包含的所有程序元素)中抑制指定的编译器警告。