美文网首页Spring Boot 核心技术SpringBootspring学习
第一章:用一个HelloWord来阐述SpringBoot的简单

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

作者: 恒宇少年 | 来源:发表于2017-04-03 11:27 被阅读25612次

    简介

    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模块)。

    图1

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

    图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” 所示:

    图3

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

    图4

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

    图5

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

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

    下图

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

    项目目录结构

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

    图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项目内有且只能有一个这个注解存在。

    图7

    初尝试运行项目

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

    图8

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

    图9

    编写HelloWordController

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

    图10

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

    图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已经在项目搭建一个项目整合组件方面很成熟,推荐大家在日后的项目中使用该框架,可以有效的提高团队开发效率以及缩短开发人员上手周期因。本人是第一次书写文章,还请大家多多包涵,如果有什么改进指教的地方还请指出,非常感谢!

    欢迎加入QQ技术交流群,共同进步。

    QQ技术交流群

    相关文章

      网友评论

      • cae06e66914f:少年,你好.怎样把IDEA的快捷键设置和eclipse快捷键一样
        cae06e66914f:@恒宇少年 你改了吗? 我在网上找的改的不全
        恒宇少年:@思想在远行 快捷键只是习惯而已,你如果想改也可以,自己去网上找找修改的地方
      • 7b1f8cd2091d:我在启动的时候,自动结束进程,没有发现tomcat启动的消息
        7b1f8cd2091d:Unregistering JMX-exposed beans on shutdow找到原因了,一开始我认为是版本问题,我的版本是2.0.4,换成1.5后有人说是pom.xml中的provided得注掉,注掉后还有,然后我就删掉了target目录,然后就好了
      • Sunnimi:感谢
      • zhangxuanchen:作者辛苦了,整理那么多资源
      • 0b660fec864f:我特意注册了账号来关注你:relieved:
        恒宇少年:@海边_拾贝 谢谢你
      • 7a83dba9ffd5:作者辛苦了~,感谢:pray:
        恒宇少年:@望晨思雨 不辛苦,为程序员服务
      • wokenshin:好文 留爪
      • yunqing_71:推!!!
        yunqing_71:@恒宇少年 极力推荐:smile:
        恒宇少年:@yunqing_71 ?
      • 日月复光:SPRING INITIALIZR构建时工程的打包方式和Idea不一样,默认是以jar进行打包.
        Switch to the full version--Packaging:war
      • sun_month:去看Spring的官方教程,可以连IDE都不用
        sun_month:@恒宇少年 maven或者gradle
        恒宇少年:@sun_month 那用什么?springtools?
      • DcLee:war的形式IDEA是启动不起来tomcat
        恒宇少年:@DcLee 可以启动,检查下tomcat配置,以及控制台输出的错误信息
      • 036271c1e347:为什么我做hello的时候 只导入了web组件 启动的时候出现 java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 这个异常 网上百度了一下 说是 logback日志与 slf4j 冲突什么的 试了半天也没解决 楼主能否给 一些帮助
        恒宇少年:@挨踢菜鸟 如果仅仅添加web依赖是可以的,你这个问题估计是jar没有下载完成,清空本地maven仓库,配置阿里云远程仓库地址从新下载,如果还不可以去我的码云下载代码看看
      • AustinYiN:最近接触到springboot,看到博主的文章,简直就是拨开云雾见青天,太感谢了。博主加油,注册了账号,持续关注你。
        恒宇少年:@AustinYiN 谢谢
      • 83a051384da6:感谢细心整理
        恒宇少年:@挨踢菜鸟 哈哈,谢谢你
        036271c1e347:从此不扶墙只服你
        恒宇少年:@fochlomand 非常感谢:kissing_heart::kissing_heart::kissing_heart:
      • 蓝凌o_o嫣然:写得很不错,简单明了,脉络清晰,让人很容易读懂,支持
        恒宇少年:@蓝凌_a432 谢谢,共同努力学习
      • houpfchn:谢谢您的分享
      • 紫萱草_:谢谢作者的分享,很感谢
      • unoobcomw3:从此不扶墙。只服你
        恒宇少年:@unoobcomw3 非常感谢,
      • LumiaKai:言简意赅,无需冗余,最近也因为项目需求刚接触,博主继续,我会持续关注。
        游来游去的金鱼:感谢分享,辛苦。 学习
        恒宇少年:@LumiaKai 好的,感谢支持。

      本文标题:第一章:用一个HelloWord来阐述SpringBoot的简单

      本文链接:https://www.haomeiwen.com/subject/hpbnottx.html