第1章 第一个Spring Boot项目

开心一笑

【今天去医院了,想把心补补。
医生看了一下说,伤的太厉害了,没法补了,还是把它取了吧!
我说行吧。
医生又来一句,说:把肺也取了吧!
我说咋的啦br> 医生说现在这个风气吧,没心没肺可能活的时间长一点!
我想了一下,也是,反正要弄就一起弄呗!
心肺拿出来后感觉一下子轻松了好多,因为以后再也不会有心痛的感觉了!
没心没肺真好,坐树杈上想了一宿,后悔没把肠肚也掏了,省得牵肠挂肚。】


新书购买

第1章    第一个Spring Boot项目

安装完成后,需要配置环境变量JAVA_HOME, 步骤如下:
在电脑桌面上,右击【我的电脑】→【属性】→【高级系统设置】→【环境变量】→【系统变量(S)】→【新建】出现新建环境变量的窗口,如图1-2所示。

第1章    第一个Spring Boot项目
图1-3 安装成功命令行窗口

JDK安装路径最好不要出现中文,否则会出现意想不到的结果哦。

1.2.2 安装Intellij IDEA

在Intellij IDEA的官方网站 http://www.jetbrains.com/idea/ 可以免费下载IDEA。下载完IDEA后,运行安装程序,按提示安装即可。本书使用的Intellij IDEA 2016.2 版本的,当然大家也可以使用其它版本的IDEA,只要版本不要过低即可。安装成功之后,软件打开界面如图1-4所示.

第1章    第一个Spring Boot项目
图1-5 Maven安装成功命令行窗口

接下来,我们要在Intellij IDEA 下配置Maven,具体步骤如下:

第1章    第一个Spring Boot项目
图1-7 新建Spring Boot项目

第1章    第一个Spring Boot项目
图1-9 选择版本和组件
填写项目名称【my-spring-boot】,其它默认即可。然后点击【Finish】,至此,一个完整的Spring Boot创建完成,如图1-10所示。

第1章    第一个Spring Boot项目
图1-11 刷新依赖窗口

至此, Spring Boot项目创建完成。

下载Spring Boot依赖包是一个相对漫长的过程,可以去喝杯茶休息一会。

1.3.2 测试

Spring Boot项目创建完成之后,找到入口类MySpringBootApplication中的main方法并运行。当看到如图1-12所示,表示项目启动成功。同时还可以看出项目启动的端口(8080)以及启动时间。

第1章    第一个Spring Boot项目
图1-13 Spring Boot工程目录

/src/main/java: 目录下放置所有的java文件(源代码文件)。
/src/main/resources: 用于存放所有的资源文件,包括:静态资源文件、配置文件、页面文件等。
/src/main/resources/static: 用于存放各类静态资源。
/src/main/resources/application.properties: 配置文件,这个文件非常重要。Spring Boot默认支持两种配置文件类型(.properties和.yml)。
/src/main/resources/templates: 用于存放模板文件,如Thymeleaf(这个技术不懂不用着急,以后会介绍)模板文件。
/src/test/java: 放置单元测试类java代码。
/target:放置编译后的.class文件,配置文件等/
Spring Boot将很多配置文件进行了统一管理,且配置了默认值。Spring Boot会自动在/src/main/resources目录下找application.properties或者application.yml配置文件。找到后将运用此配置文件中的配置,否则使用默认配置。这两种类型的配置文件有其一即可,也可以两者并存。两者区别如下:

application.properties:
server.port = 8080

application.yml:
server:
port:8080

注意:.properties配置文件的优先级高于.yml 。在.properties文件中配置了server.port = 8080,同时在.yml配置了server.port = 8090。Spring Boot将使用.properties中的8080端口。

1.4.2 入口类

入口类的类名是根据项目名称生成的,我们的项目名称是my-spring-boot,故入口类的类名是项目名称 + Application,即MySpringBootApplication.java。入口类的代码很简单,代码如下:

@SpringBootApplication:是一个组合注解,包含@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是显然过于繁琐。因此,用@SpringBootApplication简化。
@SpringApplication.run:应用程序开始运行的方法。

入口类需要放置在包的最外层,以便能够扫描到所有子包中的类。

1.4.3 测试类

Spring Boot的测试类主要放置在/src/test/java目录下面。项目创建完成,Spring Boot会自动为我们生成测试类MySpringBootApplicationTests.java。其类名也是根据项目名称 + ApplicationTests生成的。测试类的代码如下:

@RunWith(SpringRunner.class):@RunWith(Parameterized.class) 参数化运行器,配合@Parameters使用Junit的参数化功能。查源码可知,SpringRunner类是继承SpringJUnit4ClassRunner类,此处表明使用SpringJUnit4ClassRunner执行器。此执行器集成了Spring的一些功能。如果只是简单的Junit单元测试,该注解可以去掉。
@SpringBootTest:此注解能够测试我们的SpringApplication,因为Spring Boot程序的入口是SpringApplication, 基本上所有配置都会通过入口类去加载,而该注解可以引用入口类的配置。
@Test:Junit单元测试的注解,注解在方法上,表示一个测试方法。
当我们右键执行MySpringBootApplicationTests.java中的contextLoads方法的时候,大家可以看到控制台打印的信息和执行入口类中的SpringApplication.run()方法,打印的信息是一致的。由此便知,@SpringBootTest是引入了入口类的配置。

1.4.4 pom文件

Spring Boot项目下的pom.xml文件主要用来存放依赖信息。具体代码如下,部分代码已省略:

spring-boot-starter-parent: 是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
spring-boot-starter-web: 只要将其加入到项目的maven依赖中,我们就得到了一个可执行的Web应用了。该依赖中包含许多常用的依赖包,比如:spring-web、spring-webmvc等等。我们不需要做任何Web配置,便能获得相关Web服务。
spring-boot-starter-test: 这个依赖和测试相关,只要引入它,就会把所有与测试相关的包全部引入。
spring-boot-maven-plugin: 这是一个Maven插件,能够以Maven的方式为应用提供Spring
Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。能够将Spring Boot应用打包为可执行的jar或war文件。

1.5 Maven Helper插件安装和使用

1.5.1 Maven Helper插件介绍

Maven Helper是一款可以方便查看Maven依赖树的插件,可以在Intellij IDEA上安装使用它。它支持多种视图来查看Maven依赖,同时可以帮助我们分析pom文件中的依赖是否存在冲突,方便我们快速定位错误。

1.5.2 Maven Helper插件安装

安装Maven Helper插件很简单,在菜单栏选择【File】→【Settings】→【Plugins】,在搜索框中输入【Maven Helper】,然后点击【Install】安装即可。安装成功之后记得重启下Intellij IDEA即可使用。

1.5.3 Maven Helper插件使用

插件安装成功之后,如图1-14所示,打开pom文件之后,除了Text视图外,多了一个Dependency Analyzer视图。

第1章    第一个Spring Boot项目
图1-14 Maven Helper插件

All Dependencies as List:以列表方式显示所有的依赖包。
All Dependencies as Tree:以树形方式显示所有的依赖包。
Conflicts:查看所有有冲突的依赖包,如果存在冲突,会显示红色,同时会显示在右侧视图。我们可以点击有冲突的包,【右键】→【Exclude】来排除冲突,通过【右键】→【Jump To Source[F12]】可以跳转到原代码。


读书感悟

来自《从贝鲁特到耶路撒冷》

  • 如果关于中东的书你只打算读一本,那就一定是这本了。
  • I was only fifteen years old at the time and just waking up to the world…From the first day I walked through the walled Old City of Jerusalem, inhaled its spices, and lost myself in the multicolored river of humanity that flowed through its maze of alleyways, I felt at home… It may have been my first trip abroad, but in 1968 I knew then and there that I was really more Middle East than Minnesota.
    (“我那时才十五岁,刚对着世界醒来……从第一天起,当我步行穿过耶路撒冷围墙环绕的老城,呼吸其间香料的芬芳,在迷宫般的巷陌熙熙攘攘、形形色色的人流间迷失自己,我就有了家一般的感觉……我也许是第一次出国,但在1968年的彼时彼地,我确切地知道比起明尼苏达,中东才更让我着迷。

经典故事

一头老骆驼在垂暮之年,又一次穿越了号称“死亡之海”的大沙漠凯旋。一群驴子请老骆驼去介绍经验。“其实没有什么好说的,”老骆驼说,“认准目标,耐住性子,一步一步往前走,就到达了目的地。”“就这些了吗有没有驴子反复问。“没有了,就这些。”老骆驼平静地答道。“我还以为能说出些什么惊人的话语来,谁知三言两语就完了。”驴群都摇了摇头,“一点都不精彩,令人失望。”然后散开了。

【生活中,成功之道其实很简单,认准目标,耐住性子,一步一步往前走,就到达了目的地。在追求成功的过程中,没有太多的豪言壮语和掌声鲜花,只要耐得住寂寞,抵得住诱惑,守得住清贫,经得起风雨,把握住方向,成功就不会太遥远。】


大神文章


其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎鼓励,点赞、顶、欢迎留下宝贵的意见、多谢支持!

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91960 人正在系统学习中

来源:阿_毅

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月18日
下一篇 2018年8月19日

相关推荐