likes
comments
collection
share

使用Spring 框架的 Java 开发人员注解备忘单

作者站长头像
站长
· 阅读数 471

最近收集了开发人员使用的有用的注解,并将它们打包到这篇 Spring 注解备忘单中。从启动项目所需的基本注解,到服务发现注解,我已经为您提供了帮助。

重要的 Spring 注解

以下是任何使用 Spring 的 Java 开发人员都应该知道的最重要的注解:

  • @Configuration  - 用于将类标记为 bean 定义的来源。Bean 是您想要连接在一起的系统组件。用@Bean 批注标记的方法是 bean 生产者。Spring 将为您处理 bean 的生命周期,并且它将使用这些方法来创建 bean。
  • @ComponentScan - 用于确保 Spring 知道您的配置类并且可以正确初始化 bean。它使 Spring 扫描为 @Configuration 类配置的包。
  • @Import -  如果您需要更精确地控制配置类,您始终可以使用 @import 加载其他配置。即使您像 1999 年那样在 XML 文件中指定 bean,此方法也能正常工作。
  • @Component  - 另一种声明 bean 的方法是用 @Component 注解标记一个类。这样做会在自动扫描时将类转换为 Spring bean。
  • **@Service -**标记 @Component 的特化。它告诉 Spring 比常规组件更自由地管理它们是安全的。请记住,服务没有封装状态。
  • @Autowired - 要将应用程序部分连接在一起,请在组件中的字段、构造函数或方法上使用 @Autowired。Spring 的依赖注入机制将适当的 bean 连接到用 @Autowired 标记的类成员中。
  • @Bean - 一个方法级别的注解,用于指定由 Spring 上下文管理的返回 bean。返回的 bean 与工厂方法具有相同的名称。
  • @Lookup - 告诉 Spring 在我们调用它时返回该方法的返回类型的实例。
  • @Primary - 当有多个相同类型的 bean 时,优先考虑一个 bean。
  • @Required - 表明必须将 setter 方法配置为在配置时使用值进行依赖注入。在 setter 方法上使用 @Required 来标记通过 XML 填充的依赖项。否则,抛出 BeanInitializationException。
  • @Value - 用于将值分配给 Spring 管理的 bean 中的字段。它与构造函数、setter 和字段注入兼容。
  • @Lazy - 使 bean 延迟初始化。@Lazy 注解可用于任何直接或间接用@Component 注解的类或用@Bean 注解的方法。
  • @Scope - 用于定义 @Component 类或 @Bean 定义的范围,可以是单例、原型、请求、会话、全局会话或自定义范围。
  • @Profile - 仅当该配置文件处于活动状态时才向应用程序添加 bean。

有了这些注解,您可以轻松地将应用程序组合在一起。当然,您可能想要使用更多的 Spring 注解,但这些是框架的核心,它实现了 Spring 众所周知的灵活性!

重要的 Spring Boot 注解

让我们看一下 Web 应用程序中一些最常用的注解。普及使 Web 开发更容易的 Spring Framework 注解是有意义的。

@SpringBootApplication

最基本和最有用的注解之一是 @SpringBootApplication。它是组合其他注解的语法糖,我们稍后将介绍。@SpringBootApplication 是 @Configuration@EnableAutoConfiguration@ComponentScan注解的组合,配置了它们的默认属性。

@Configuration 和 @ComponentScan

我们上面描述的@Configuration 和@ComponentScan 注解使Spring 创建和配置应用程序的bean 和组件。这是将实际业务逻辑代码与将应用程序连接在一起的好方法。

@EnableAutoConfiguration

现在 @EnableAutoConfiguration注解更好。它让 Spring 根据类路径上可用的 JAR 文件猜测配置。它可以找出您使用的库并预先配置它们的组件,而无需您动动手指。这就是所有 spring-boot-starter 库的工作方式。这意味着当您刚开始使用库时以及当您知道并相信默认配置是合理的时,它都是一个主要的救星。

重要的 Spring MVC Web 注解

以下注解使 Spring 将您的应用程序配置为能够提供 HTTP 响应的 Web 应用程序。

  • @Controller - 将该类标记为 Web 控制器,能够处理 HTTP 请求。Spring会查看用@Controller注解标记的类的方法,并建立路由表来知道哪些方法服务于哪些端点。
  • @ResponseBody - @ResponseBody 是一个实用程序注解,它使 Spring 将方法的返回值绑定到 HTTP 响应正文。在构建 JSON 端点时,这是一种神奇的方式,可以将您的对象神奇地转换为 JSON 以便于使用。
  • @RestController - 然后是@RestController 注解,这是@Controller 和@ResponseBody 一起使用的便捷语法。这意味着标记类中的所有操作方法都将返回 JSON 响应。
  • @RequestMapping(method = RequestMethod.GET, value = "/path") - @RequestMapping(method = RequestMethod.GET, value = "/path") 注解指定控制器中的一个方法,该方法应该负责为 HTTP 请求提供服务到给定的路径。Spring 将处理它如何完成的实现细节。您只需在注解上指定路径值,Spring 就会将请求路由到正确的操作方法中。
  • @RequestParam(value="name", defaultValue="World") - 当然,处理请求的方法可能需要参数。为了帮助您将 HTTP 参数绑定到操作方法参数中,您可以使用 @RequestParam(value="name", defaultValue="World") 注解。Spring 将解析请求参数并将适当的参数放入您的方法参数中。
  • @PathVariable("placeholderName") - 另一种向后端提供信息的常用方法是在 URL 中对其进行编码。然后,您可以使用 @PathVariable("placeholderName") 注解将 URL 中的值带到方法参数中。

最后想说的

在这篇文章中,我们知道了 Java 开发人员在使用 Spring 框架时应该知道的许多注解。我们已经介绍了最常用也可能是最重要的注解——从为组件启用依赖注入的注解到绑定代码以响应 HTTP 请求的方法。

我已经写了很长一段时间的技术博客,这是我的一篇技术文章/教程。希望你们会喜欢!这里汇总了我的全部原创及作品源码:GitHub,还有这是我最近刚搭建的博客:haiyong.site,里面还没啥内容,放了一些HTML小游戏,有兴趣的可以尝试一下,源码可以自己F12复制,或者直接找我要。

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。🤗最后,不要忘了❤或📑支持一下哦。