《Spring Boot官方指南》(二)入门(一)

简介:

Spring Boot使创建基于Spring的应用程序变得轻松,您只需要做到“just run”就能创建一个独立的、产品级别的Spring应用程序。我们为Spring平台及第三方库提供了相对固定的搭配,所以您开始的时候会轻松很多。大部分的SpringBoot应用程序都只需要很少的Spring配置。

您可以使用SpringBoot创建应用程序,通过java -jar命令或者传统的war包部署方式来启动它。我们也提供了一个命令行工具来运行“spring脚本”。

我们的目标是:

  • 从根本上提供更加快速和简便的Spring开发体验。
  • 开箱即用,但定制开发也很便捷。
  • 提供一些大型项目常用的非功能性特性(例如:嵌入式服务、安全、监控、健康检查、外部配置)。
  • 不用生成代码,没有xml配置。

2. 系统要求

一般情况下,Spring Boot1.4.1.BUILD-SNAPSHOT要求Java 7以及 Spring Framework 4.3.3.BUILD-SNAPSHOT或者更高版本。您可以在Java 6的环境下使用Spring Boot,但是需要一些额外的配置。访问Section 80.11, “How to use Java 6″获得更多详细说明。需要明确的是,Maven需要3.2或者更高版本,Gradle需要1.12或者2.x。Gradle 3 不支持。

[Tip] Tip
虽然您可以在Java 6或者7下使用Spring Boot,但我们一般还是建议尽可能的使用Java 8。

2.1 Servlet容器

下面的嵌入式Servlet容器可以直接使用:

名称 Servlet版本 Java版本
Tomcat 8 3.1 Java 7+
Tomcat 7 3.0 Java 6+
Jetty 9.3 3.1 Java 8+
Jetty 9.2 3.1 Java 7+
Jetty 8 3.0 Java 6+
Undertow 1.3 3.1 Java 7+

您也可以在兼容Servlet 3.0+ 的容器中部署Spring Boot 应用。

3. 安装Spring Boot

Spring Boot可以和“经典的”Java开发工具一起使用,也可以安装成一个命令行工具。无论如何,您需要Java SDK v1.6或者更高的版本。开始之前,确认一下您的Java版本:

$ java -version

如果您是Java开发新手,或者您只是想体验一下Spring Boot,
第一步您可以选择去Spring Boot CLI 试一试。或者,继续看“经典的”安装介绍。

[Tip] Tip
虽然Spring Boot可以兼容Java 6,但是还是尽可能使用最新版本的Java。

3.1 Java开发者使用的安装教程

您可以像使用其他标准Java库一样使用Spring Boot。只需要将相关的spring-boot-*.jar文件包含进您的classpath。Spring Boot不需要使用特殊的工具进行集成,因此您选择任何IDE或者文本编辑器都可以;并且Spring Boot应用程序也没有任何特殊规范,您可以像其他Java程序一样来运行和调试它。

虽然您可以复制Spring Boot jars,但是我们建议使用支持依赖管理的构建工具(比如Maven或者Gradle)。

3.1.1 Maven安装

Spring Boot与Apache Maven 3.2或者更高的版本兼容。如果您还没有安装Maven,可以去maven.apache.org阅读相关教程。

[Tip] Tip
很多操作系统可以使用包管理工具来安装Maven,苹果的OSX操作系统Homebrew使用者可以试试brew install maven。Ubuntu用户可以运行这个命令sudo apt-get install maven

Spring Boot 依赖的groupIdorg.springframework.boot。通常情况下,您的MavenPOM文件继承自spring-boot-starter-parent项目,并且声明为一些“Starters”。Spring Boot也提供了一些创建可执行jar文件的Maven插件

这是一个典型的pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.BUILD-SNAPSHOT</version>
    </parent>

    <!-- Additional lines to be added here... -->

    <!-- (you don't need this if you are using a .RELEASE version) -->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
</project>
[Tip] Tip
继承spring-boot-starter-parent项目是不错的使用Spring Boot的方式,但是有时候可能还是有不适配的问题。有些时候您可能需要继承子不同的父POM,或者仅仅是和我们的默认配置有所区别。查看Section 13.2.2, “Using Spring Boot without the parent POM”,这是使用了导入方式的一种解决方案。

3.1.2 Gradle安装

Spring Boot与Gradle 1.12或者更高的版本兼容。如果您还没有安装Gradle,可以去www.gradle.org/阅读相关教程。

Spring Boot依赖的grouporg.springframework.boot。一般情况下,您的项目可能需要为一个或多个“Starters”声明依赖项。Spring Boot提供了一些不错的Gradle插件,可以用来简化依赖声明和创建可执行的jar文件。

这是一个典型的build.gradle文件:

buildscript {
    repositories {
        jcenter()
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.1.BUILD-SNAPSHOT")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

jar {
    baseName = 'myproject'
    version =  '0.0.1-SNAPSHOT'
}

repositories {
    jcenter()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

3.2 安装Spring Boot CLI

Spring Boot CLI是一个命令行工具,如果想要快速获取一个Spring样品程序,可以使用到它。Spring Boot CLI是一个命令行工具,如果想要快速获取一个Spring样品程序,可以使用到它。有了它,您可以运行Groovy脚本,这意味着您可以使用熟练的类Java语法,而不是超多的样板代码。

使用CLI这个命令行工具来做Spring Boot开发并不是必须的,但它确实是一个开发Spring应用程序最快捷的方式。

3.2.1 手动安装

到Spring软件仓库下载Spring CLI的发布包:

也可以去snapshot distributions下载最新的快照发布版本。

下载以后,阅读一下解压缩包里面的说明文档:INSTALL.txt。大概是这样,bin/目录下的.zip文件里面有一个spring脚本(Windows系统是spring.bat),或者您也可以使用命令java -jar来运行.jar文件(脚本是帮您确保classpath是否设置正确了)。

3.2.2 使用SDKMAN!安装

SDKMAN!(一个软件开发工具管理器)可以用用来管理多版本的二进制SDKs,包括 Groovy 与 Spring Boot CLI。到sdkman.io下载SDKMAN!,用下面的方式来安装Spring Boot:

$ sdk install springboot
$ spring --version
Spring Boot v1.4.1.BUILD-SNAPSHOT

如果您正在开发一些命令行工具CLI的组件,并且想要方便的使用到您刚刚构建的版本,下面这个介绍可以帮到您。

$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-1.4.1.BUILD-SNAPSHOT-bin/spring-1.4.1.BUILD-SNAPSHOT/
$ sdk default springboot dev
$ spring --version
Spring CLI v1.4.1.BUILD-SNAPSHOT

这样做可以安装一个被叫做dev实例的本地spring实例,它指向了您的目标生成路径,所以每次您重新构建Spring Boot,spring都会是保持最新版本。

应该可以看到下面的这些输出信息:

$ sdk ls springboot

================================================================================
Available Springboot Versions
================================================================================
> + dev
* 1.4.1.BUILD-SNAPSHOT

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

3.2.3 OSX Homebrew 安装

如果您在Mac环境下,并且使用Homebrew,运行下面的命令来安装Spring Boot CLI:

$ brew tap pivotal/tap
$ brew install springboot

Homebrew把`spring`安装到了/usr/local/bin

[Note] Note
如果没有顺利安装的话,大概是您的brew库已经太旧了,执行brew update以后,再试一试。

3.2.4 MacPorts安装

如果您在Mac环境下,并且使用MacPorts,运行下面的命令来安装Spring Boot CLI:

$ sudo port install spring-boot-cli
相关文章
|
1月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
1月前
|
Java
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
这篇文章是Spring5框架的实战教程,深入讲解了AOP的基本概念、如何利用动态代理实现AOP,特别是通过JDK动态代理机制在不修改源代码的情况下为业务逻辑添加新功能,降低代码耦合度,并通过具体代码示例演示了JDK动态代理的实现过程。
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
|
1月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
28天前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
1月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
1月前
|
XML Java 数据格式
Spring5入门到实战------5、IOC容器-Bean管理(三)
这篇文章深入探讨了Spring5框架中IOC容器的高级Bean管理,包括FactoryBean的使用、Bean作用域的设置、Bean生命周期的详细解释以及Bean后置处理器的实现和应用。
Spring5入门到实战------5、IOC容器-Bean管理(三)
|
1月前
|
XML Java 数据格式
Spring5入门到实战------4、IOC容器-Bean管理XML方式、集合的注入(二)
这篇文章是Spring5框架的实战教程,主题是IOC容器中Bean的集合属性注入,通过XML配置方式。文章详细讲解了如何在Spring中注入数组、List、Map和Set类型的集合属性,并提供了相应的XML配置示例和Java类定义。此外,还介绍了如何在集合中注入对象类型值,以及如何使用Spring的util命名空间来实现集合的复用。最后,通过测试代码和结果展示了注入效果。
Spring5入门到实战------4、IOC容器-Bean管理XML方式、集合的注入(二)
|
1月前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
1月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
1月前
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)