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

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

你可能感兴趣的:(java,spring,java-ee)