第一章:用一个HelloWord来阐述SpringBoot的简单与快速

  1. 云栖社区>
  2. 博客>
  3. 正文

第一章:用一个HelloWord来阐述SpringBoot的简单与快速

恒宇少年的知识库 2017-12-14 16:55:00 浏览1638
展开阅读全文

简介

spring框架盛行了多年的java方向开发人员来说,每个人java开发已经把spring框架当做开发中不可或缺的一部分。之前传统的模式都是以applicationContext.xml配置文件的形式存在,而对应大多数入门级开发人员来说配置出现一点纰漏就会导致运行失败或者更大的问题,因此会浪费开发人员很多宝贵的时间,对公司来说也是有所损失。那么spring开源组织很早之前就意识到这种问题的存在,于是他们便对spring框架的全系列组件进行了内部封装。对外只是提供maven(jar管理、项目打包工具)或者gradle(新兴jar管理、项目打包工具)的形式来进行引入parent.pom(maven配置文件)或者parent.gradle(gradle配置文件),让每一个spring项目都是以spring的子项目的形式来运行,这样开发人员不用再去注重配置文件的繁琐而是把精力放到业务逻辑以及更深层次的架构方面。自此SpringBoot就诞生了,它有着纯正的开源血统,在此非常感谢spring开源组织给我们java开发人员带来的便利!

SpringBoot主要优点:

1. 为所有Spring开发者更快的入门
2. 开箱即用,提供各种默认配置来简化项目配置
3. 内嵌式容器简化Web项目
4. 没有冗余代码生成和XML配置的要求
5. 提供一系列大型企业级项目的功能性特性(比如:安全、健康检测、外部化配置、数据库访问、restful搭建等很多特性这里就不一一叙说了,后期文章会陆续更新)

本章目的

使用springboot完成一个简单的web(springmvc)应用程序,通过@restController输出"HelloWord"到界面,让我们初步体验springboot的快速开发、简单的特性。

系统要求

1. jdk1.8
2. springboot 1.5.2.RELEASE
3. 开发工具(IntelliJ IDEA 2017.1.1)
4. 数据库管理工具(Navicat Premium 11.1.7)
5. 文本管理工具(sublime text 3)
6. apache maven(3.3.9,本章采用maven形式管理jar包,具体配置环境变量以及使用请自行查找资料)

开始构建项目

目前构建项目有多种方式我这里简单介绍两种。
1、使用spring官网 SPRING INITIALIZR 来构建项目结构(地址:http://start.spring.io/
2、使用IntelliJ IDEA开发工具来构建项目结构

使用SPRING INITIALIZR构建

访问start.spring.io/网址就会看到如下 “图1” 界面:
界面主要部分包括:管理工具,springboot版本,包名(group),工程名(Artifact),已选模块(我已经选择了一个web模块)。

15fba7f2601f29cc?w=1240&h=611&f=png&s=82
图1

点击Generate Project就会下载一个根据你输入的信息创建的项目工程架构源码的压缩包。
解压压缩包到指定目录(目录你可以随意定义)我这里为了后续操作先定义到E:/lessions内可以看到如下“图2”所示:

15fba7f2603ae203?w=1139&h=629&f=png&s=54
图2

解压完成之后我们就可以通过IntelliJ IDEA开发工具导入到工程,
1. 菜单中选择File–>New–>Project from Existing Sources...
2. 选择解压后的项目文件夹,点击OK
3. 点击Import project from external model并选择Maven,点击Next到底为止。
4. 若你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择系统安装1.8版本

使用IntelliJ IDEA构建

打开工具,界面如下 “图3” 所示:

15fba7f2600fe937?w=783&h=489&f=png&s=242
图3

我们点击Create New Project来创建一个新的springboot应用程序,点击后如下“图4”所示:

15fba7f26d164297?w=899&h=602&f=png&s=444
图4

我们点击Next继续下一步操作,根据界面输入选项填写对应的内容即可如“图5”所示:

15fba7f262c5e9e2?w=899&h=602&f=png&s=319
图5

点击Next即可完成创建项目,而且创建完成后会自动导入到项目工程内就不需要再次import操作,这种方式会比较简单些,所以我们的文章内都会采用第二种形式来创建新工程。

在下一步我们勾选Web依赖加入到我们的项目中,如下图所示:


15fba7f263000182?w=875&h=822&f=png&s=609
下图

这里注意一点的是,如果上面我们选择了war形式,也添加了Web依赖并且在开发过程中使用Application形式启动,则需要注释pom.xml配置文件内tomcat依赖的scope属性。

项目目录结构

我们来看看工具为我们生成新工程的目录结构,如”图6“所示:

15fba7f2602bf476?w=695&h=505&f=png&s=271
图6

我们可以看到目录结构有如下几个:

1、/src/main/java/ 存放项目所有源代码目录
2、/src//main/resources/ 存放项目所有资源文件以及配置文件目录
3、/src/test/ 存放测试代码目录

自动生成的文件解释

LessonOneApplication 该类是程序的入口类内有个main方法,可以直接通过run as运行项目
application.properties 该配置文件是项目的核心配置文件,以xx.xx.xx的形式存在
pom.xml maven配置文件,因为我们采用的maven管理jar,所以这里会自动生成一个pom文件

@SpringBootApplication注解

我们可以看到工具为我们自动生成的入口程序是有@SpringBootApplication的这么一个注解,那它主要是做什么的呢?不难看出,它是声明当前类为sprinboot的入口类。而一个springboot项目内有且只能有一个这个注解存在。

15fba7f262eaacb4?w=1016&h=367&f=png&s=29
图7

初尝试运行项目

我们在入口程序类中右键->Run LessonOneApplication在控制台的输出如下”图8“所示,证明你已经成功的运行了springboot项目。

15fba7f265a12b20?w=1240&h=434&f=png&s=24
图8

可以看到我们的项目是通过内置的tomcat容器启动的,并且端口号默认是8080(至于如何修改端口号后期文章中更新)。我们现在通过浏览器直接访问是得不到任何回应的,只是会有一个错误页面,如下”图9“所示

15fba7f262f08895?w=812&h=293&f=png&s=189
图9

编写HelloWordController

我们首先在/src/main/java/com/yuqiyu (该目录是你构建项目的目录) 目录下创建一个叫做lessonOne的package,然后在lessonOne下再创建一个叫做controller的package,最后我们在controller包下创建一个HelloWordController.java 类文件,我们使用@RestController来声明我们新创建的HelloWordController是一个访问控制器,如下”图10“所示:

15fba7f265b83619?w=1240&h=809&f=png&s=31
图10

可以看到我配置了一个@RequestMapping注解来声明index()方法可以通过127.0.0.1:8080/index访问到,那么我们接下来重新启动项目(项目中如果重启出错应该是注解配置问题),访问地址如下”图11“所示:

15fba7f265950efc?w=646&h=239&f=png&s=132
图11

可以看到我们输出了”HelloWord“!自此我们这章的讲解就完成了。

源码地址

本章以及后续章节的源码地址我都会分享出来,请大家自行下载以及git clone。

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

总结

本章主要通过springboot简单特性来完成了第一个"HelloWord"web应用程序的搭建,我们可以看出springboot已经在项目搭建一个项目整合组件方面很成熟,推荐大家在日后的项目中使用该框架,可以有效的提高团队开发效率以及缩短开发人员上手周期因。本人是第一次书写文章,还请大家多多包涵,如果有什么改进指教的地方还请指出,非常感谢!


网友评论

登录后评论
0/500
评论
恒宇少年的知识库
+ 关注