开始使用spring boot

spring boot最让人激动的两个特性是起步依赖和自动配置。本篇介绍如何快速地使用spring boot框架搭建出一个spring mvc rest的站点,让我们对spring boot有一个初步的认识。

获取模板代码

获取模板代码有好几种方式,例如:

  • spring initializr
  • spring cli
  • 各种ide插件

方式一:spring initializr

使用spring initializr是最方便的,无需安装任何东西。在浏览器中访问http://start.spring.io/,只需填入相关信息,点击[generate project]按钮,即可下载一个zip文件,解压这个zip文件,就得到了一个maven项目(或gradle项目)。

方式二:spring cli

作为开发人员,我更喜欢用命令行的方式。window或linux用户,直接下载https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.0.1.RELEASE/spring-boot-cli-2.0.1.RELEASE-bin.tar.gz文件,加压后配置环境变量即可使用spring命令。mac用户可以用homebrew更加方便地安装spring cli

$ brew tap pivotal/tap
$ brew install springboot

spring cli安装好之后,下面来试一下。先来看看spring命令的帮助

$ spring --help

我们需要用spring init命令来创建,可以使用spring help init来查看init时的参数。输入以下命令来创建一个项目

$ spring init -g=com.example -a=spring-boot-start -d=web 
Using service at https://start.spring.io
Content saved to 'spring-boot-start.zip'

spring为我们生成了一个zip文件,解压该文件即可得到一个模板项目。

增加一个controller

使用你习惯的ide打开这个模板项目,新增一个类,内容如下

package com.example.springbootstart.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestContoller {

    @RequestMapping("/test")
    public String hello(){
        return "hello,spring boot";
    }
}

编译、打包、运行

使用maven编译并打包

mvn clean package

编译以后会得到一个fat jar,并且内嵌了一个tomcat,所以可以直接运行这个jar文件

java -jar target/spring-boot-start-0.0.1-SNAPSHOT.jar

启动后,访问 http://localhost:8080/test,即可显示hello,spring boot

关于spring boot

我之编写了一个controller的代码,其它的什么都没干,没有任何配置,就运行出来一个mvc站点,还不缺包,版本也不冲突了,这就归功于spring boot了。文章开头提到了spring boot的两大特性(其实还有很多特性,后面的博客会提到),分别是:起步依赖和自动配置。

关于起步依赖

打开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>spring-boot-start</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

这里面的starter,就是所谓的起步依赖。看上去非常简洁,功能却十分强大,不仅包含了运行一个mvc站点所需的所有必要的依赖了,还包括:内嵌servlet容器、fat jar、executable jar等特性,启动时只需要简单地使用java -jar即可,无需再设置其它的classpath。

关于自动配置

在spring boot之前,如果想使用spring mvc来开发一个站点的话,需要配置好几个bean,我原来的一篇博客开始使用spring mvc专门记录了如何从头开始搭建一个springmvc站点。而现在,我们没有配置DispatcherServlet,没有配置InternalResourceViewResolver,没有设置静态文件的地址等,spring检测到当前项目引用了spring-mvc的包,就自动注册了对应的spring bean,并对一些属性设置了默认值。

我接下来会关于spring boot写一个系列的博客,争取覆盖到spring boot更多的用法和细节。系列中共包含以下几个主题:

猜你喜欢

转载自blog.csdn.net/daguanjia11/article/details/80026835