为什么要使用Spring Boot创建微服务?
Spring Boot是Java领域众所周知的首选框架,用于创建Micro Services。 使用Spring引导框架,可以非常轻松地创建Java应用程序。 现在,我们将看到Spring启动框架的一些功能,这使其成为创建Micro Services的理想竞争者。
1.首先让我们看一下示例Spring app Maven文件。
如果您在上图中查看Maven XML文件,则Hibernate用作ORM框架, H2是内存数据库中的基础。 如果您在此处仔细观察,则需要在xml文件中显式指定所有数据库以及与ORM相关的依赖关系,尽管它随后又会由于Maven而解析其所有互连的依赖关系。 如果可以,我们掌握了一些框架/工具 ,因此不必指定以上依赖项,这样可以节省大量开发人员的时间和资源。 为了使此功能成为现实,Spring提出了一个名为Spring Boot的框架。
2.什么是Spring框架的@Conditional注释?
如果您查看上图中来自spring-boot-autoconfigure jar的HibernateJpaAutoConfiguration类,您会发现@Conditional Annotation(请参见箭头标记),它查找HibernateEntityManagerCondition 。
如果您查看上图中的HibernateEntityManagerCondition类,则只有在类路径中存在org.hibernate.ejb.HibernateEntityManager或org.hibernate.jpa.HibernateEntityManager (请参见箭头标记)中的任一个时,您才会看到HibernateEntityManagerCondition被满足。 因此,只有满足以上条件,才会在HibernateJpaAutoConfiguration中自动配置bean。
3. Spring Boot的自动配置功能基于@Conditional注释。
如果您查看上图中用于注释所有Spring Boot应用程序Main类的SpringBootApplication类,您会注意到它具有@EnableAutoConfiguration Annotation(请参见箭头标记),它可以自动配置Bean。 这就是通过使用Spring Boot实现自动配置的所有魔力。 因此,一般而言,Spring Boot提供以下功能:
3.1轻松的依赖管理
如果您看上面的图片,您将看到以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