微服务 spring boot 译<四> SpringBoot CLI

SpringBoot是一个自成体系的Java框架,用于构建基于Spring依赖注入框架的微服务。SpringBoot容许开发人员经过减小样板、配置和开发人员摩擦来建立微服务。这是一种相似于咱们将要研究的另外两个框架。java

SpringBoot作了如下的:git

  • 默认支持自动、常规配置github

  • 整理经常使用的启动程序依赖项集,以便于使用web

  • 简化应用程序打包spring

  • 洞悉应用(例如,度量和环境信息)数据库

Simplified Configuration

从 Spring 历史上看,配置是一场噩梦。尽管该框架在其余模型(EJB1.x、2.x等)的基础上进行了改进,但它确实附带了本身的一组重量级使用模式。也就是说,Spring 须要大量的 XML 配置和对构建jdbcTemplate、jmsTemplate、BeanFactory生命周期挂钩、servlet侦听器和许多其余组件所需的单个bean的深刻理解。实际上,在DispatcherServlet和一系列模型-视图-控制器类的支持下,用SpringMVC编写一个简单的“helloworld”。SpringBoot的目标是用一些隐含的约定和简化的注释消除全部这些样板配置--不过,若是须要的话,您仍然能够对底层bean进行精细的调优。浏览器

Starter Dependencies

Spring被用于大型企业应用程序中,这些应用程序一般使用大量不一样的技术来完成繁重的工做:jdbc数据库、消息队列、文件系统、应用程序级缓存等。开发人员必须中止她正在作的事情,切换认知上下文,找出哪些依赖关系属于哪一段函数性(“哦,我须要JPA依赖关系!”),并花费大量时间来解决版本不匹配或在尝试使用这些不一样部分时可能出现的问题。SpringBoot为添加这些功能提供了大量精选的库集合。这些初学者模块容许您添加以下内容:缓存

  • JPA persistence安全

  • NoSQL数据库,如 MongoDB, Cassandra, Couchbasespringboot

  • Redis caching

  • Tomcat/Jetty/Undertow servlet engine

  • JTA transactions

将子模块添加到应用程序中会引入一组通过组织的可传递依赖项和已知能够协同工做的版本,从而使开发人员没必要本身对依赖项进行排序。

Application Packaging

Spring Boot其实是一组引导库,具备一些配置约定,但没有理由不能在现有应用服务器内运行Spring Boot应用程序(做为WAR)。大多数使用 SpringBoot 的开发人员喜欢的习惯用法是应用程序的自包含 JAR 打包。这意味着 SpringBoot 将全部依赖项和应用程序代码打包到一个具备平面类加载器的自包含JAR中。这使得理解应用程序启动、依赖顺序和日志语句变得更容易;但更重要的是,它有助于减小将应用程序安全投入生产所需的移动部件的数量。这个 SpringBootforMicroservices 意味着你不须要把一个应用程序扔进一个应用服务器;这个应用程序一旦构建好,就能够独立运行了--包括嵌入本身的servlet容器(若是它使用servlet的话)。没错,一个简单的java-jar<name.jar>就足以启动您的应用程序了!SpringBoot、DropWizard 和 WildFlySwarn 都遵循这种模式,将全部内容打包到一个可执行的 JAR 中。

可是,咱们一般指望从应用服务器中获得的管理又是什么呢?

Production Ready

SpringBoot 附带了一个名为执行器的模块,它支持有关应用程序的度量和统计等功能。例如,咱们能够收集日志、查看度量、执行线程转储、显示环境变量、理解垃圾收集以及显示 BeanFactory 中配置了哪些bean。您能够经过HTTP、JMX公开这些信息,甚至能够经过SSH直接登陆到该进程。

有了Spring Boot,咱们就能够利用Spring框架的强大功能,减小样板配置和代码,从而更快地构建功能强大、可生产的微服务。让咱们看看怎么作。

Getting Started

咱们将使用SpringBoot命令行接口(CLI)引导咱们的第一个SpringBoot应用程序(CLI在幕后使用SpringInitializr)。若是您对CLI感到不舒服,您能够自由地探索不一样的方法来实现这一点。其余选择包括为您喜欢的IDE使用SpringInitializr插件,或者访问SpringInitializr的Web版本。SpringBootCLI能够经过几种不一样的方式安装,包括经过包管理器和直接从网站下载。请检查有关安装最适合您的开发环境的CLI的说明。

一旦安装了CLI工具,就应该可以检查Spring的版本:

$ spring --version
    Spring CLI v1.3.3.RELEASE

若是您能够看到安装CLI的版本,那么恭喜您!如今,导航到一个目录,您想要在其中存放来自书中的示例,并运行如下命令:

spring init --build maven --groupId com.redhat.examples \

--version 1.0 --java-version 1.8 --dependencies web \

--name hola-springboot hola-springboot

在运行此命令以后,您应该有一个名为hola-Spring的目录,其中包含一个完整的SpringBoot应用程序。若是运行该命令并以demo.zip结束,则只需解压缩并继续。让咱们快速了解一下这些命令行选项是什么。

--build

咱们如今想要使用的构建管理工具maven或gradle是两个有效的选项。

--groupId

在咱们的maven中使用的groupId是咱们的app.xml的坐标;不幸的是,这并无正确地扩展到建立的Java包名称。这些都须要手工修改

--version

应用程序的版本;将在之后的迭代中使用,所以设置为1.0。

-- java-version

容许咱们指定JDK的编译版本

--dependencies

这是一个有趣的参数;咱们能够指定彻底成熟的依赖集来进行常见类型的开发。例如,Web将设置SpringMVC并嵌入一个内部Servlet引擎(默认状况下为Tomcat;Jetty和 Undertow为选项)。其余方便的依赖包/启动程序包括JPA、安全性和Cassandra)。

如今,若是您到hola-Spring引导目录,请尝试运行如下命令:

$ mvn spring-boot:run

若是一切都引导起来没有任何错误,您应该会看到一些相似这样的日志记录

恭喜你!您已经快速得到了一个SpringBoot应用程序并开始运行!您甚至能够在浏览器中导航到http://localhost:8080,并应该看到如下输出:

这个默认的错误页面是预期的,由于咱们的应用程序尚未作任何事情!让咱们进入下一节,添加一个REST,以组合一个hello-world用例!

 

原文:

做者源码:https://github.com/redhat-developer/microservices-by-example-source

相关文章
相关标签/搜索