Spring Boot学习(一)

Spring Boot概要

SpringBoot是由Pivotal队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapidapplicationdevelopment)成为领导者。

多年以来,SpringIO平台受非议的一点就是大量的XML配置以及复杂的依赖管理。在去年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且特别提到该平台将来的目标之一就是实现免XML配置的开发体验。Boot所实现的功能超出了这个任务的描述,开发人员不仅不再需要编写XML,而且在一些场景中甚至不需要编写繁琐的import语句。在对外公开的beta版本刚刚发布之时,Boot描述了如何使用该框架在140个字符内实现可运行的web应用,从而获得了极大的关注度,该样例发表在tweet上。

然而,Spring Boot并不是要成为Spring IO平台里面众多“Foundation”层目的替代者。Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。对于已经熟悉Spring生态系统的开发人员来说,Boot是一个很理想的选择,不过对于采用Spring技术的新人来说,Boot提供一种更简洁的方式来使用这些技术。

 

在追求开发体验的提升方面,Spring Boot,甚至可以说整个Spring生态系统都使用到了Groovy编程语言。Boot所提供的众多便捷功能,都是借助于Groovy强大的MetaObject协议、可插拔的AST转换过程以及内置的依赖解决方案引擎所实现的。在其核心的编译模型之中,Boot使用Groovy来构建工程文件,所以它可以使用通用的导入和样板方法(如类的main方法)对类所生成的字节码进行装饰(decorate)。这样使用Boot编写的应用就能保持非常简洁,却依然可以提供众多的功能。

安装Boot

从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用。框架的发布版本,包括集成的CLI(命令行界面),可以在Spring仓库中手动下载和安装一种更为简便的方式是使用Groovy环境管理器(Groovy enVironment Manager,GVM)它会处理Boot版本的安装和管理。Boot及其CLI可以通过GVM的命令行gvm install springboot进行安装。在OS X上安装Boot可以使用Homebrew包管理器。为了完成安装,首先要使用brew tap pivotal/tap切换到Pivotal仓库中,然后执行brew install springboot命令。

要进行打包和分发的工程会依赖于像Maven或Gradle样的构建系统。为了简化依赖图,Boot的功能是模块化的,通过导入Boot所谓的“starter”模块,可以将许多的依赖添加到工程之中。为了更容易地管理依赖版本和使用默认配置,框架提供了一个parent POM,工程可以继承它。Spring Boot工程的样例POM文件定义如程序清单1所示。


程序清单1

<?xml version="1.0"encoding="UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
   <groupId>com.example</groupId>
   <artifactId>myproject</artifactId>
   <version>1.0.0-SNAPSHOT</version>
 
    <!-- Inheritdefaults from Spring Boot -->
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.0.0.RC1</version>
    </parent>
 
    <!-- Addtypical dependencies for a web application -->
   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
   </dependencies>
 
   <repositories>
       <repository>
           <id>spring-snapshots</id>
           <url>http://repo.spring.io/libs-snapshot</url>
       </repository>
   </repositories>
 
   <pluginRepositories>
       <pluginRepository>
           <id>spring-snapshots</id>
           <url>http://repo.spring.io/libs-snapshot</url>
       </pluginRepository>
   </pluginRepositories>
 
    <build>
       <plugins>
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
           </plugin>
       </plugins>
    </build>
</project>

为了实现更为简单的构建配置,开发人员可以使用Gradle构建系统中简洁的Groovy DSL,如程序清单1.1所示。


程序清单1.1

buildscript {
  repositories {
    maven { url"http://repo.spring.io/libs-snapshot" }
    mavenCentral()
  }
  dependencies {
   classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.0.RC1")
  }
}
 
apply plugin: 'java'
apply plugin: 'spring-boot'
 
repositories {
  mavenCentral()
  maven { url"http://repo.spring.io/libs-snapshot" }
}
 
dependencies {
  compile'org.springframework.boot:spring-boot-starter-actuator:1.0.0.RC1'
}

为了快速地搭建和运行Boot工程,Pivotal提供了称之为“Spring Initializr”的web界面,用于下载预先定义好的Maven或Gradle构建配置。我们也可以使用Lazybones模板实现快速起步,在执行lazybonescreate spring-boot-actuator my-app命令后,它会为Boot应用创建必要的工程结构以及gradle构建文件。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值