每个人都应该知道的 Spring Boot 基本注解

已发表: 2021-12-13

Java Spring Framework 是一个开源的企业级框架,用于创建在 Java 虚拟机 (JVM) 上运行的生产级独立应用程序。 为此,Java Spring Boot 是一个使用 Spring Framework 简化和加速 Web 应用程序和微服务开发的工具。 为此,Java Spring Boot 利用了三个核心功能——自动配置、自以为是的配置方法以及创建独立应用程序的潜力。 这些核心功能的融合提供了一个工具,允许开发人员以最少的配置设置基于 Spring 的应用程序。

在注解之前,Spring Framework 的行为主要是由 XML 配置控制的。 但是,Spring Boot 注解极大地改变了您配置 Spring Framework 行为的方式。

在本文中,我们将介绍 Spring Framework 中的一些基本注解。

目录

什么是 Spring Boot 注解?

Spring Boot 注解是元数据的一种形式。 它们本身不是正在开发的应用程序的一部分,而是提供有关程序的补充数据。 注释对其注释的代码的操作没有直接影响,也不会改变已编译程序的操作。

Spring 应用程序需要大量的配置。 Spring Boot 是一个基于 Spring 框架的自以为是的框架。 它最大限度地减少了配置工作和样板文件需要开始。 Spring Boot 注释是获得对 Spring 框架的控制、指导框架以及在需要时覆盖其默认值的关键。 与从头开始构建等效功能相比,这些注释易于使用且速度更快。

每个人都应该知道的 Spring Boot 注解

尽管 Spring Boot 适用于 Java、Groovy 和 Kotlin,但我们将在讨论重要的 Spring Boot 注释时将重点放在 Java 上。

1.@配置

@Configuration 用于定义 bean 的类中。 XML 配置文件的类似物是用作 bean 定义源的类级别注释。 @Configuration 注解的 Java 类本身就是一个配置,并且具有配置和实例化依赖项的方法。

例子:

@配置

公共类巴士

{

@BeanBus 引擎()

{

返回新的总线();

}

}

2.@豆

作为 XML <bean> 标记的替代方案,@Bean 注释用于方法级别,以指示方法生成要由 Spring 容器管理的 bean。 此注解与 @Configuration 一起创建 Spring beans。 @Configuration 具有配置和实例化依赖项的方法,这些方法由@Bean 注释。

例子:

@豆角,扁豆

公共 BeanExample beanExample ()

{

返回新的 BeanExample (),

}

3.@ComponentScan

@ComponentScan 注释用于扫描一个 bean 包。 它与 @Configuration 注释一起使用,让 Spring 知道必须扫描带注释组件的包。

例子:

@ComponentScan(basePackages = “com.xyz”)

@配置

公共类 ScanComponent

{

//…

}

4.@组件

@Component 注解用于类上表示 Spring 组件。 它是一个类级别的注释,在自动扫描期间将类转换为 Spring bean。

例子:

@零件

公共课教师

{

……

}

5.@EnableAutoConfiguration

@EnableAutoConfiguration 注解通常放置在主应用程序类上,它隐式定义了一个基本搜索包。 基于类路径设置、各种属性设置和其他 bean,@EnableAutoConfiguration 指示 Spring Boot 开始添加 bean。

6.@SpringBootApplication

@SpringBootApplication 注解增加了三个注解——@Configuration、@EnableAutoConfiguration 和@ComponentScan。 在设置Spring Boot项目时在应用类上使用,将@SpringBootApplication注解的类放在基础包中。 @SpringBootApplication 进行组件扫描,但仅扫描子包。

7.@存储库

@Repository 注解用于直接访问数据库的 Java 类。 它用作履行数据访问对象或存储库角色的类的标记。

例子:

@Repository

公共类TestRepository

{

公共无效删除()

{

// 持久化代码

}

}

8.@服务

它是一个类级别的注解,标记一个 Java 类执行某种服务,例如执行业务逻辑、执行计算或调用外部 API。 @Service 注解是@Component 注解的一种特殊形式,用于服务层。

例子:

@服务

公共类TestService

{

公共无效服务1()

{

// 业务代码

}

}

9.@Autowired

此注解隐式注入对象依赖关系并应用于字段、构造函数和 setter 方法。 当在字段上使用 @Autowired 并且使用属性名称传递字段的值时,Spring 会自动为字段分配传递的值。

10.@控制器

@Controller 注解用于在应用程序中充当控制器的 Java 类。 它允许在类路径中自动检测组件类,并为它们自动注册 bean 定义。 @Controller 注解通常与@RequestMapping 一起使用,使用@Controller 注解的Java 类可以处理多个请求映射。

例子:

@控制器

@RequestMapping(“汽车”)

公共类 CarsController

{

@RequestMapping(值=“/{name}”,方法= RequestMethod.GET)

公共员工 getCarsByName()

{

还车模板;

}

}

11.@请求映射

@RequestMapping 注解用于方法和类级别。 它用于将 Web 请求映射到指定的处理程序方法和处理程序类。 当在方法上使用 @RequestMapping 时,它会给出将在其上执行处理程序方法的 URL。 相反,当在类级别使用注解时,它会创建一个基本 URL,控制器将用于该 URL。 因此,每个处理程序方法都有其各自的请求映射,而类级别的请求映射保持不变。

例子:

@控制器

公共类 FlowersController

{

@RequestMapping (“/red-color/flowers”)

public String getAllFlowers(模型模型)

{

//应用代码

返回“花单”;

}

12.@限定符

当需要对依赖注入过程进行更多控制时,@Qualifier 与 @Autowired 一起使用。 @Qualifier 注解可以在方法参数或单个构造函数参数上指定。 当开发人员创建多个相同类型的 bean 时,通常会出现混淆,但其中只有一个必须与属性连接。 @Qualifier 注释可以方便地消除这些混淆。

例子:

@零件

公共类 BeanB1 实现 BeanInterface {

//

}

@零件

公共类 BeanB2 实现 BeanInterface {

//

}

在上面的例子中,BeanInterface 是由 BeanB1 和 BeanB2 这两个 bean 实现的。 现在,如果 BeanA 自动装配这个接口,Spring 将不知道它应该注入两个实现中的哪一个。 您可以使用 @Qualifier 注释解决此问题。 有了这个注解,Spring 将知道要自动装配哪些 bean。

@零件

公共类 BeanA {

@自动连线

@Qualifier(“beanB2”)

私有 BeanInterface 依赖;

}

13.@值

@Value 注解用于字段、方法参数和构造函数参数级别。 它表示用于初始化属性的参数或字段的默认值表达式。

14.@懒惰

@Lazy 注解应用于组件类。 在启动时,默认情况下会创建和配置所有自动装配的依赖项。 但是如果开发者想要懒惰地初始化一个bean,可以使用@Lazy 注解。 因此,bean 仅在请求时才被创建和初始化。 @Lazy 注解也可用于@Configuration 类,这意味着该@Configuration 中的所有@Bean 方法都将延迟启动。

虽然这个 Java Spring Boot 注释列表并不详尽,但它或多或少涵盖了每个开发人员或 Java 爱好者都应该知道的最基本的注释。 毕竟,Spring Boot 简化了基于 Spring 的应用程序的开发,值得了解。

利物浦约翰摩尔斯大学数据科学理学硕士

如果您是一名有抱负的数据科学家,那么这是向最优秀的人学习的机会。 upGrad 与利物浦约翰摩尔斯大学合作提供在线数据科学理学硕士课程,专为希望磨练数据科学技能和知识的在职专业人士而设计。

以下是一些节目亮点一览:

  • LJMU 硕士学位和 IIT 班加罗尔执行 PGP
  • 500 多个小时的学习时间,包括现场会议、案例研究和项目
  • 全面覆盖 14 多种工具和软件
  • 三个独特的专业
  • 360 度专业的职业帮助
  • 同行学习和行业网络

upGrad 的沉浸式和行业相关的学习计划已经影响了全球超过 500,000 名在职专业人士,并继续在高等教育科技行业设定高标准。 因此,立即申请并加入遍布 85 个国家/地区的 40,000 多名全球学习者群!

从世界顶级大学在线学习数据科学课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

Spring Boot 启动器的目的是什么?

Spring Boot 启动器是允许在类路径中添加 jar 的依赖描述符。 在 Spring Boot 框架中,每个 starter 都有以下命名模式:spring-boot-starter-*,其中 * 代表特定的应用程序类型。

@SpringBootApplication 和 @EnableAutoConfiguration 有什么区别?

@EnableAutoConfiguration 的主要任务是启用 Spring Boot 应用程序的自动配置功能。 相反,@SpringBootApplication 结合了三个注解——@ComponentScan 用于组件扫描,@Configuration 用于 Spring 框架上基于 Java 的配置,@EnableAutoConfiguration 允许在 Spring Boot 应用程序中进行自动配置。

Spring Boot 可以在没有 SpringBootApplication 的情况下运行吗?

使用 @SpringBootApplication 创建 Spring Boot 应用程序不是强制性的。 您仍然可以单独使用@EnableAutoConfiguration 和@Configuration。