Spring Boot教程(一)(快乐入门)(上)

                                                                                                                                原创者:文思

       Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目。

SpringBoot精要:

1自动配置auto-configuration: 针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关默认配置,进一步请自己理解

2起步依赖starters:告诉Spring Boot需要什么功能,它就能引入需要的starter库,进一步请自己理解

3命令行界面cli: 这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建,或许不常用 

4Actuator:让你能够深入运行中的Spring Boot应用程序,对应用系统的自省和监控的集成功能。

以上是Spring Boot有四大神器。

环境要求:

目前Spring Boot正式版为1.5.1.RELEASE默认情况下,Spring Boot

1.5.1.RELEASE需要Java 7和Spring Framework

4.3.6.RELEASE或更高版本。推荐Java 8

极速入门:

传统spring mvc开发一个web项目:

Maven构建文件及spring,spring

mvc,servlet api,jdbc依赖类

Web.xml配置

Spring.xml springMvc.xml配置

Tomcat

Contoller类,只有contoller类和业务具体相关,其它都是配置及开发环境搭建、准备。

使用spring boot:

推荐Spring Initializr,它从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目

访问:http://start.spring.io


下载项目压缩包,导入到你的工程

项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。

·pom.xml:Maven构建说明文件。

·Chapter1Application.java:一个带有main()方法的类,用于启动应用程序(关键)。

·Chapter1ApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文。

application.properties:一个空的properties文件,你可以根据需要添加配置属性。

解析pom.xml

这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。查看C:\Users\goodluck\.m2\repository\org\springframework\boot\spring-boot-parent\1.5.4.RELEASE\spring-boot-parent-1.5.4.RELEASE.pom:

relativePath是相对路径的意思,再打开引用文件spring-boot-dependencies-1.5.1.RELEASE.pom:

如果你不想使用某个依赖默认的版本,您还可以通过覆盖自己的项目中的属性来覆盖各个依赖项,例如,要升级到另一个Spring

Data版本系列,要升级mysql版本,不想使用servletr-api3.1版本,都可以在pom.xml中更换,如:

并不是每个人都喜欢继承自spring-boot-starter-parent POM。您可能有您需要使用的自己的公司标准parent,或者您可能更喜欢显式声明所有的Maven配置,再或者有10个、20个甚至更多模块继承自同一个模块。要知道,Maven的继承和Java的继承一样,是无法实现多重继承的,如果那么按照我们之前的做法,这个父模块的dependencyManagement会包含大量的依赖。如果你想把这些依赖分类以更清晰的管理,那就不可能了,import scope依赖能解决这个问题如果不想使用spring-boot-starter-parent,可以通过使用scope = import依赖关系来保持依赖关系管理。步骤:

1把dependencyManagement放到单独的专门用来管理依赖的pom中,比如叫base-parent1

2通过非继承的方式来引入这段依赖管理配置,需要使用依赖的模块中通过import scope依赖,就可以引入dependencyManagement

以我们的项目为例,在我们的项目demo中不使用starter-parent的话,在pom.xml中:

该设置不允许您使用如上所述的属性(properties)覆盖各个依赖项,要实现相同的结果,您需要在spring-boot-dependencies项之前的项目的dependencyManagement中添加一个配置,例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中:

这样配置的话,自己的项目里面就不需要继承SpringBoot的module了,而可以继承自己项目的module了。

---------------------------------------------------------------------------------------------------------------------------------------------------

起步依赖 spring-boot-starter-xx

Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。

比如我们之前要实现web功能,引入了spring-boot-starter-web这个起步依赖。我们来看看spring-boot-starter-web到底依赖了哪些,如图:

好多好多,看着是不是很熟悉,所以Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖。起步依赖的命名都暗示了它们提供的某种或者某类功能。

上面的配置就是Spring Boot Maven插件,Spring Boot Maven可以把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序,在main方法中即可运行。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

应用入口类

@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出

有三种启动方式:

run as -> java applicion或者run as -> spring boot app 或者在Boot Dashbord中debug

使用命令 mvn spring-boot:run”

运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令

打开浏览器访问:

上集讲解完毕,请关注下集源码剖析。

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

推荐阅读更多精彩内容