什么是Spring Boot以及为什么它是用于创建微服务的首选框架

为什么要使用Spring Boot创建微服务?

Spring Boot是Java领域众所周知的首选框架,用于创建Micro Services。 使用Spring引导框架,可以非常轻松地创建Java应用程序。 现在,我们将看到Spring启动框架的一些功能,这使其成为创建Micro Services的理想竞争者。

1.首先让我们看一下示例Spring app Maven文件。

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

样本Spring Maven文件

如果您在上图中查看Maven XML文件,则Hibernate用作ORM框架, H2是内存数据库中的基础。 如果您在此处仔细观察,则需要在xml文件中显式指定所有数据库以及与ORM相关的依赖关系,尽管它随后又会由于Maven而解析其所有互连的依赖关系。 如果可以,我们掌握了一些框架/工具 ,因此不必指定以上依赖项,这样可以节省大量开发人员的时间和资源。 为了使此功能成为现实,Spring提出了一个名为Spring Boot的框架。

2.什么是Spring框架的@Conditional注释?

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

Spring4状态

如果您查看上图中来自spring-boot-autoconfigure jar的HibernateJpaAutoConfiguration类,您会发现@Conditional Annotation(请参见箭头标记),它查找HibernateEntityManagerCondition

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

Spring4状态

如果您查看上图中的HibernateEntityManagerCondition类,则只有在类路径中存在org.hibernate.ejb.HibernateEntityManagerorg.hibernate.jpa.HibernateEntityManager (请参见箭头标记)中的任一个时,您才会看到HibernateEntityManagerCondition被满足。 因此,只有满足以上条件,才会在HibernateJpaAutoConfiguration中自动配置bean。

3. Spring Boot的自动配置功能基于@Conditional注释。

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

SpringBootApplication类

如果您查看上图中用于注释所有Spring Boot应用程序Main类的SpringBootApplication类,您会注意到它具有@EnableAutoConfiguration Annotation(请参见箭头标记),它可以自动配置Bean。 这就是通过使用Spring Boot实现自动配置的所有魔力。 因此,一般而言,Spring Boot提供以下功能:

3.1轻松的依赖管理

什么是Spring Boot以及为什么它是用于创建微服务的首选框架

Spring Boot Maven文件样本

如果您看上面的图片,您将看到以spring-boot-starter- *开头的依赖项列表 现在,让我们以spring-boot-starter-data-jpa依赖关系为例。 这将提取所有spring数据的jpa依赖关系。因此,我们无需手动在Maven xml文件中声明所有jpa依赖关系,例如HIbernate等。 因此,作为开发人员,我们可以节省大量时间和资源,无需手动执行依赖项管理

3.2自动配置

如上所示,我们不需要在spring bean xml文件中显式定义EntityManagerFactory bean定义等。如果在类路径中有oracle,Sybase之类的数据库驱动程序,它将通过查看datasource.properties自动创建一个Data Source bean文件放在类路径中,并将其与Sybase,Oracle等基础数据库连接。

3.3嵌入式Web服务器支持

如果您查看Spring Boot App Maven xml文件,其中已包含spring-boot-starter-web依赖项
这个Spring-boot-starter-tomcat依次添加spring-boot-starter-tomcat,然后从主类执行SpringApplication.run方法后,它将启动一个嵌入式的tomcat容器,该容器最终将在其上部署我们的spring boot应用程序。

4.为什么在创建微服务时使用spring boot?

正如我们已经看到的那样,通过其依赖项管理和自动配置进行的Spring Boot简化了并简化了应用程序的开发过程。 现在,我们了解了Spring Boot在创建微服务方面的确切帮助。 为了更好地理解它,让我们首先尝试从Wikipedia获得Micro Services的确切定义。

在计算中,微服务是相互独立的小型,独立进程,相互通信以形成利用与语言无关的API的复杂应用程序。 这些 服务   是小型积木,高度 分离   并专注于完成一项小任务,   促进 模块化   方法 系统 路技术。 微服务架构风格正成为构建持续部署的系统的标准。

现在,如果我们尝试理解以上内容,那就说明微服务是最小的业务流程,它们相互通信以形成复杂的业务应用程序。众所周知,业务流程非常敏捷,并且随着复杂性的变化不断发展和增长因此,理想情况下,要解决这种复杂性,应该提供一种技术方案,其中可以无缝集成业务变更和新流程,并且停机时间要少得多,这比使用Spring Boot创建微服务更好。看到了上面的优点。

5.结论

在本文中,我们已经看到了使用Spring Boot创建微服务的优势。 在本系列的下一部分中,我们将介绍Spring Boot Framework所需的其他组件,以创建健壮的微服务架构。

翻译自: https://www.javacodegeeks.com/2016/05/spring-boot-preferred-framework-creating-micro-services.html