Spring Boot学习(二)

开发Spring Boot应用

Spring Boot在刚刚公开宣布之后就将一个样例发布到了Twitter上,它目前成为了最流行的一个应用样例。它的全部描述如程序清单1.2所示,一个非常简单的Groovy文件可以生成功能强大的以Spring为后端的web应用。

程序清单1.2

/**
 * @author ChenYanwei
 * @version 1.0
 */
@RestController
class App {
 @RequestMapping("/")
  String home() {
   "hello"
  }
}

这个应用可以通过spring run App.groovy命令在Spring Boot CLI中运行。Boot会分析文件并根据各种“编译器自动配置(compiler auto-configuration)”标示符来确定其意图是生成Web应用。然后,它会在一个嵌入式的Tomcat中启动Spring应用上下文,并且使用默认的8080端口。打开浏览器并导航到给定的URL,随后将会加载一个页面并展现简单的文本响应:“hello”。提供默认应用上下文以及嵌入式容器的这些过程,能够让开发人员更加关注于开发应用以及业务逻辑,从而不用再关心繁琐的样板式配置。

Boot能够自动确定类所需的功能,这一点使其成为了强大的快速应用开发工具。当应用在Boot CLI中执行时,它们在使用内部的Groovy编译器进行构建,这个编译器可以在字节码生成的时候以编码的方式探查并修改类。通过这种方式,使用CLI的开发人员不仅可以省去定义默认配置,在一定程度上甚至可以不用定义特定的导入语句,它们可以在编译的过程中识别出来并自动进行添加。除此之外,当应用在CLI中运行时,Groovy内置的依赖管理器,“Grape”,将会解析编译期和运行时的类路径依赖,与Boot编译器的自动配置机制类似。这种方式不仅使得框架更加对用户友好,而且能够让不同版本的Spring Boot与特定版本的来自于Spring IO平台的库相匹配,这样一来开发人员就不用关心如何管理复杂的依赖图和版本结构了。另外,它还有助于快速原型的开发并生成概念原型的工程代码。

对于不是使用CLI构建的工程,Boot提供了许多的“starter”模块,它们定义了一组依赖,这些依赖能够添加到构建系统之中,从而解析框架及其父平台所需的特定类库。例如,spring-boot-starter-actuator依赖会引入一组基本的Spring项目,从而实现应用的快速配置和即时可用。关于这种依赖,值得强调的一点就是当开发Web应用,尤其是RESTful Web服务的时候,如果包含了spring-boot-starter-web依赖,它就会为你提供启动嵌入式Tomcat容器的自动化配置,并且提供对微服务应用有价值的端点信息,如服务器信息、应用指标(metrics)以及环境详情。除此之外,如果引入spring-boot-starter-security模块的话,actuator会自动配置SpringSecurity,从而为应用提供基本的认证以及其他高级的安全特性。它还会为应用结构引入一个内部的审计框架,这个框架可以用来生成报告或其他的用途,比如开发认证失败的锁定策略。

为了阐述在Java Maven工程中,如何快速地使Spring Web工程准备就绪,考虑一下程序清单1.3中的应用程序代码。

程序清单1.3

package com.infoq.springboot;
 
import org.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*;

/**
 * @author ChenYanwei
 * @version 1.0
 */ 
@RestController
@EnableAutoConfiguration
public class Application {
 
  @RequestMapping("/")
  public Stringhome() {
    return"Hello";
  }
 
  public staticvoid main(String[] args) {
   SpringApplication.run(Application.class, args);
  }
}

在Application类上的@EnableAutoConfiguration注解会告知Boot要采用一种特定的方式来对应用进行配置。这种方法会将其他样板式的配置均假设为框架默认的约定,因此能够聚焦于如何尽快地使应用准备就绪以便运行起来。Application类是可运行的,因此,当我们以Java Application的方式运行这个类时,就能启动该应用及其嵌入式的容器,这样也能实现即时地开发。

为了发布版本而构建工程时,Boot的Maven和Gradle插件可以嵌入(hook)到这些构建系统的打包过程中,以生成可执行的“胖jar包(fat jar)”,这种jar包含了工程的所有依赖并且能够以可运行jar的方式执行。使用Maven打包Boot应用只需运行mvn package命令,与之类似,使用Gradle时,执行gradle build命令将会在构建的目标地址下生成可运行的jar。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值