Spring Boot入门教程(一):搭建SpringMVC工程和Spring Boot工程

        Spring Boot入门教程(一):搭建SpringMVC工程和Spring Boot工程

转载自:https://blog.csdn.net/vbirdbest/article/details/79573740

一:传统SpringMVC工程搭建步骤

搭建一个Spring + SpringMVC的工程,需要如下几步:

引入Spring依赖,一般都会引入很多Spring的依赖,如spring-core、spring-context、spring-context-support、spring-webmvc 等;

配置web.xml, 要配置contextConfigLocation参数,要配置Spring的监听器ContextLoaderListener,要配置SpringMVC的分发;Servlet DispatcherServlet

配置spring-servlet.xml,配置SpringMVC对应的内部资源视图识别器InternalResourceViewResolver的前缀、后缀等;

配置applicationContext.xml,配置Spring的核心配置文件;

配置完成后就可以写Controller了,然后启动tomcat;


二:具体步骤

1. 引入Spring依赖

<properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <log4j.version>2.5</log4j.version>

    <jstl.version>1.2</jstl.version>

    <spring.version>4.2.3.RELEASE</spring.version>

</properties>

<dependency>

  <groupId>javax.servlet</groupId>

  <artifactId>jstl</artifactId>

  <version>${jstl.version}</version>

</dependency>

<dependency>

  <groupId>org.springframework</groupId>

  <artifactId>spring-webmvc</artifactId>

  <version>${spring.version}</version>

</dependency>

<dependency>

  <groupId>org.springframework</groupId>

  <artifactId>spring-core</artifactId>

  <version>${spring.version}</version>

</dependency>

<dependency>

  <groupId>org.springframework</groupId>

  <artifactId>spring-context</artifactId>

  <version>${spring.version}</version>

</dependency>

<dependency>

  <groupId>org.springframework</groupId>

  <artifactId>spring-context-support</artifactId>

  <version>${spring.version}</version>

</dependency>

2. 配置web.xml

配置web.xml

3. 配置WEB-INF/spring-servlet.xml


配置web-info

4. applicatonContext.xml


applicatonContext.xml

5. HelloWorldController


Controller


配置tomcat并启动

Spring缺点: 配置繁琐,各种XML、Annotation配置,如果出错了也很难找出原因;


创建Spring Boot 工程

Spring Boot的项目也是基于maven或者gradle的,有两种方式:一种是通过IDE创建(ide也是基于官网的,只不过帮你自动下载并使用ide帮你打开了),一种是在官网上创建https://start.spring.io, github地址:https://github.com/spring-projects/spring-boot/

方式一:使用IntelliJ IDEA的Spring Initializer创建


Spring Initializer创建


Spring Initializer创建


Spring Initializer创建


Spring Initializer创建

方式二:https://start.spring.io

在浏览器上直接输入https://start.spring.io,只需要Dependencies中输入Web选中即可(输入Web就是集成SpringMVC功能,如果不需要可以什么都不输入,后面如果需要集成SpringMVC的话也是超级very很简单的),然后生成项目(即下载项目),然后使用idea打开即可


这种方式还要跑到官网,下载项目,然后再使用idea open项目,如果使用idea就不需要这些步骤,会自动下载帮你打开。可以看到传统SpringMVC的集成方式和使用Spring Boot的搭建方式有什么不同,最大的特点就是快,没有那么多的配置,可以说是零配置,不像传统SpringMVC项目,要配置很多东西,虽然这些东西都是从别的地方复制过来的,完成起来也需要几分钟时间,肯能还会出错,都是一些体力活,创建一个Spring Boot项目只需要几秒钟就能搞定,而且不会出错,也不需要任何配置;Spring Boot项目就是为了解决Spring配置繁琐的问题,最大化的实现约定大于配置(convention over configuration),以最快的速度来搭建项目,采用注解配置来替换xml配置;


两种方式的区别:

传统maven-archetype-webapp和Spring Boot项目结构比较;


比较一


比较二

打包方式不同:

传统web maven项目使用的是maven-archetype-webapp骨架,打包方式是使用的war包

Spring Boot的打包方式是使用的jar包

pom.xml中引入的依赖不同

传统web项目是引入多个单独的依赖

Spring Boot是引入的spring-boot-starter, 在spring boot中大部分依赖不需要指定version,因为版本号已经在spring-boot-starter-parent中定义过了

项目目录结构不同

传统的web项目中src/main/java下是没有类的,Spring Boot项目中有一个启动类(Project名称+Application), 而且在src/test/java中也有一个测试类(Project名称+ApplicationTest)

传统的web项目有src/main/webapp/WEB-INF/web.xml, Spring Boot中没有web.xml

传统的web项目resources的目录是空的,Spring Boot项目中resources中有static、templates目录和一个配置文件application.properties

项目运行方式不同

传统web项目是启动tomcat

Spring Boot项目是直接运行main方法或者直接运行jar(java -jar <project>.jar);


Spring Boot的优点

集成框架非常简单,例如集成SpringMVC,只需引入spring-boot-starter-web这一个依赖,也不需要做任何配置,这样集成起来非常快速方便。Spring Boot支持很多常用的框架集成, 如 log、test、mybatis、nosql、mq、模板技术(thymeleaf、freemark)、jpa、aop、actuator 等, 具体请查看Starter POMs、 Starter POMs

引入的依赖的数量很少,例如要引入测试依赖JUnit、Hamcrest、Mockito只需要引入spring-boot-starter-test这一个依赖就行了

自动化配置,使用默认配置,再也不需要applicationContext.xml等配置文件了

支持自定义配置,可以配置在application.yml或者Config类中,如果自定义了就使用自定义的值,没有自定义的则使用默认的值

运行更加简单,直接使用java -jar 命令,或者直接在IDE中运行main方法;


Spring Boot的缺点:

高度封装,出现问题不易排查,适合有开发惊讶的攻城狮,不适合初学者,初学者上手容易,一旦出现问题就很难排查;将现有或传统的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目;资料比较少,文档比较少;Spring Boot 正在快速发展,可能版本变动比较大;

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

推荐阅读更多精彩内容