【springboot 入门篇】第1篇 第一个spring-boot程序(多种搭建方式)

学习一个新技术,先别管他的原理啊,流程啊,怎么组织代码啊什么的。直接从官网或者博客抄一个小demo,自己亲自跑一遍,然后再去看那一堆让人头皮发麻的讲解,就能相对容易的看懂了。

初学者的态度应该是:不要问我为什么,反正我就是可以这样运行!

1. 创建一个spring boot项目可以使用哪些工具

1.1 使用start.spring.io

这是一个网站,可以在这个网站选择你需要的组件,然后会自动生成一个项目文件,你可以将它下载到本地,然后使用你常用的编译器打开就好。(它是下面三种方法的基础)

1.2 使用Spring Tool Suite(STS)

STS是eclipse的一个插件,可以方便eclipse用户进行spring boot的开发。

1.3 使用Intellij IDEA

IDEA 集成了spring boot(也是一个插件),idea对新技术的支持比较快,而且是最好用的java编译器(我认为的)。推荐大家使用它进行开发,教程可以参考我写的文章。

1.4 使用Spring boot CLI

Spring boot的命令行工具,可以很方便的操作spring项目。

接下来会逐一演示这四种方法。

2. 实战:创建第一个spring boot项目

2.1 使用start.spring.io

项目配置

打开这个网站,设置你的项目,选择需要的dependencies。然后点击生成项目。就可以把项目下载到本地了。

项目结构

下载下来的就是一个maven项目,你可以使用你熟悉的ide打开它,然后进行代码的编写。

2.2 使用Spring Tool Suite(STS)

首先,你需要安装这个插件。

安装STS

安装好后,选择创建一个spring stater项目:

创建项目

项目设置:

项目设置

看到了么,start.spring.io O.O

版本和依赖选择:

版本和依赖选择

完成

完成

2.3 使用Intellij IDEA

使用idea

选择spring initializr,然后选择jdk版本,点next。可以发现,idea的这个插件其实用的也是start.spring.io。

接下来配置你的项目:

配置你的项目

选择你需要的依赖和版本:

选择你需要的依赖和版本

设置项目名和位置:

设置项目名和位置

完成:

完成

2.4 使用Spring boot CLI

2.4.1 下载安装:(当前最新版1.5.3)

  • 方法1,手动安装,下载下面的压缩包,提供两种压缩格式。

spring-boot-cli-1.5.3.RELEASE-bin.zip
spring-boot-cli-1.5.3.RELEASE-bin.tar.gz

下载完成后,遵循解压后的存档里的INSTALL.txt操作指南进行安装。一般而言,在.zip文件的bin/目录下存在一个spring脚本(Windows下是spring.bat),或者使用java -jar来运行一个.jar文件(该脚本会帮你确定classpath被正确设置)。

  • 方法2,使用SDKMAN安装
    SDKMAN! (The Software Development Kit Manager) 可以用来管理多种有许多版本的sdk,包括groovy和spring boot cli。可以通过 sdkman.io来获得sdkman,然后通过它来安装cli。:
$ sdk install springboot
$ spring --version
Spring Boot v1.5.3.RELEASE

你也可以通过配置,来获取其他版本的CLI:

$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-1.5.3.RELEASE-bin/spring-1.5.3.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v1.5.3.RELEASE
  • 方法3,如果你是mac用户,可以使用Homebrew:
$ brew tap pivotal/tap
$ brew install springboot
// 会安装到/usr/local/bin
  • 方法4,mac用户也可以使用MacPorts安装:
$ sudo port install spring-boot-cli

命令行实现:
Spring Boot CLI启动脚本为BASHzsh shells提供完整的命令行实现。你可以在任何shell中source脚本(名称也是spring),或将它放到你个人或系统范围的bash实现初始化中。在一个Debian系统里,系统范围的脚本位于/shell-completion/bash
下,当一个新的shell启动时该目录下的所有脚本都被执行。想要手动运行该脚本,例如,你已经使用GVM进行安装了:

$ . ~/.gvm/springboot/current/shell-completion/bash/spring
$ spring 
  grab  help  jar  run  test  version

如果你使用Homebrew或MacPorts安装Spring Boot CLI,命令行实现脚本会自动注册到你的shell。

恩,上面撤了一堆,都是安装CLI的方式,翻译自官网,选一种方式安装就好了。安装成功后:

2.4.2 创建一个项目:

输入命令:

使用CLI
$ mkdir demo
$ cd demo
$ spring init -d=web -g=com.example -a=demo --package-name=com.example --name=demo -x

-d(dependencies 依赖包)
-g(Group Id)
-a(Artifact Id)
--package-name(Package name)
--name(Project name)
-x(Extract compatible archives)

更多详情可以输入spring help init查看。

查看结果:

结果

和之前的创建方式得到的是一样的。

无论哪种创建方式都是要访问https://start.spring.io来获取模板工程代码。所以甚至可以使用CURL或HTTPie这些第三方工具来创建。当然。。创建个工程而已,没必要这么麻烦,直接idea不就好了?

3. 编写代码及代码核心部分的分析

创建好工程了,接下来,我们简单的写一个小demo。

3.1 简单的小demo。

打开DemoApplication.java 修改代码为:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class}) //移除自动注入数据源
@RestController  // 添加了一个注解
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    //添加了一个方法
    @RequestMapping("/hello")
    public String hello(){
        return "no hello world";
    }
}

直接运行这个main方法:

运行结果

浏览器访问http://localhost:8080/hello

浏览器访问

大功告成。第一个spring boot项目完成。

3.2 代码简单讲解

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
 //移除自动注入数据源

现在新版本的springboot会自动注入数据源,所以需要在application配置文件里写你的数据库信息,但是我们暂时用不到它,所以先把这个功能移除,不然会报错。

@RestController

这个一个组合注解,相当于@ResponseBody@Controller,controller大家都知道,ResponseBody注解将内容或对象作为 HTTP 响应正文返回。

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

这个就是spring boot的入口。关于这个方法,我们以后会详细讲解。

    @RequestMapping("/hello")
    public String hello(){
        return "no hello world";
    }

写过springmvc的应该都懂吧,我就不多说了。由于只是演示,所以我就把它放在入口类中了,规范点应该自己写controller类的。

4. 小结

创建一个spring boot的项目是非常方便的,由于start.spring.io的存在,你可以使用任何你喜欢的ide来快速开发spring boot项目。

从创建到运行,你会发现,我们没有创建任何一个xml,也没有多余的配置。创建好项目以后,写一个controller就可以运行了,非常的方便。

后面和数据库对接,做安全验证的时候你会发现,原来一切都可以这么简单。


本篇文章到这里就结束了。如果文章内容有错误,请及时与我联系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容