最开始时不知道spring boot这个东西的,大概知道sts里面有个spring starter project的,但是不知道时干嘛用的。
知道有一次,参加了一个微服务为主题的技术沙龙。
因为 spring的 xml 配置太多, 一直以来我都不怎么喜欢用 spring. 用 jfinal 的时候多点.
可是当我第一次整儿八经的用 spring boot 去尝试创建一个项目, 也就是传说中的Hello World. 出奇的顺利, 那种酸爽, 谁用谁知道.
ok. 废话不多说, 来一个最简单的 spring boot工程.

下载了 spring 官方推荐的 IDE — 基于 eclipse 搞的 sts .官网: https://spring.io/tools/sts. 也可以用 eclipse 装插件, 也可以用 idea. 看自己喜好.

选择建立 Spring Starter Project.

031481AB-1A02-4976-B543-A470C1356C6F.png

填写基本信息

48048BBD-274E-4FF3-B6A4-EED837461D3A.png

点击 Next, 选择要引入的包, 这里大部分都是spring cloud构建微服务要用到的, 刚开始不要被吓着, 我们目前只关心 spring boot 相关的. 我们的 hello-world 只是想对外提供一个简单接口. 所以我们选了 web.
1E6BA9D8-5336-4A16-9F7C-594A2124E41D.png

再次点击 Next, spring 官网服务器会生成一个zip 包, IDE 会自动下载这个包导入进来.
A18FEC1A-0C35-497C-AADF-367895870531.png

最终的工程结构是这样的, 一眼望去, 这不就是个 maven 工程么. 只是自己生成了几个不知道干什么的目录而已.
到这里已经是最后一步了, Next 不能点了, 直接点击 Finish. 让我们看看 spring boot 的工程到底长什么样子.
经过一个不太漫长的等待...
231EE902-9DCA-4675-88DE-7500E7B5713B.png

最终的工程结构是这样的, 一眼望去, 这不就是个 maven 工程么. 只是自己生成了几个不知道干什么的目录而已.

929BA87E-0834-4DAE-83D0-2D2D6441A88B.png

再看一下 pom.xml 文件:
1837FCD0-432D-460C-87C6-BE460F665313.png

打包后的结果是 jar, 这个是我们在第一部基本信息的时候填的. 我们在之前引入的 web 在这里表现为 spring-boot-starter-web. 下面还有个 spring-boot-starter-test, 有没有一种很简洁的感觉.
怎么运行, 我们在 IDE 里面可以直接运行, spring boot 项目自带容器特性. 直接运行就行了.
找到HelloWorldApplication.java 文件

package cn.com.hanbinit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}

直接右键: 556A8194-F147-4741-B6B8-1BE02E8F9192.png

Run As -> Java Application 就行. 下面那个 Spring Boot App后面再聊.
启动后, 看 Console, 发现他自己真的启动了个 Tomcat, 有木有很激动.
BC0F0D06-4D18-484D-A6DD-C471DB8061B1.png

虽然我们没有写一行代码, 但是发现它其实自己偷偷干了好些事, 好像还有个/error的东西. 试着浏览器访问下
89A589B9-455A-4B40-87B8-B33DB7115618.png

不是404哦, 暂且不管这个999是什么意思.我们写一个接口先.

package cn.com.hanbinit.controller;

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

@RestController
public class Hello {
    
    @RequestMapping("/hello")
    public String hello(){
        return "hello-world";
    }
}

启动的时候 console 里面可以看到

s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello]}" onto public java.lang.String cn.com.hanbinit.controller.Hello.hello()

浏览器请求:
CE3F8EE8-5EB4-43BA-AFA7-9815C96D1236.png

没错, 一个简单的接口就这样完成了.
最开始的时候, 就是这么一个例子, 让我坚定了深入学习 spring boot 的路程. 如果你也因为这个例子有了同样的想法, 那么, 持续关注看看.