Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x

第1章:快速上手Spring Boot 2.x

本章概要

  • Web 开发框架简史
  • Spring Boot 简介
  • Maven的使用
  • 传统Spring MVC开发实例
  • 快速上手第一个Spring Boot 小项目

温馨提示:
本文配套代码:https://gitee.com/guduwuhen/springboot2-lesson 下的:springboot-lesson1.1和lesson1-2

文章目录

  • 第1章:快速上手Spring Boot 2.x
    • 1.1 Web 开发框架简史
      • 1.1.1 MVC开发模式
      • 1.1.2 开发框架演进
      • 1.1.3 SSH和SSM的对比
    • 1.2 开发环境搭建
      • 1.2.1 安装Maven
      • 1.2.2 IDEA配置Maven
      • 1.2.3 IDEA配置字符编码
    • 1.3 传统的Spring MVC开发实例
      • 1.3.1 使用IDEA开发工具创建web工程
      • 1.3.2 添加Spring Mvc相关的Maven依赖
      • 1.3.3 完善工程目录
      • 1.3.4 修改配置文件
        • 1.3.4.1 web.xml文件配置
        • 1.3.4.2 Springmvc 配置文件
        • 1.3.4.3 Spring 配置文件
        • 1.3.4.4 测试代码编写
        • 1.3.4.5 IDEA配置Tomcat并发布程序
        • 1.3.4.6 运行程序并测试
      • 1.3.5 总结
    • 1.4 Spring Boot 简介
      • 1.4.1 什么是Spring Boot?
      • 1.4.2 快速上手Spring Boot
        • 1.4.2.1 IDEA搭建Spring Boot2.x 项目
        • 1.4.2.3 默认项目目录
        • 1.4.2.4 测试代码编写
        • 1.4.2.5 程序运行
        • 1.4.2.6 浏览器访问
      • 1.5 总结

1.1 Web 开发框架简史

1.1.1 MVC开发模式

 在java架构模式中,我们可以将MVC架构模式抽象为如下结构:

 1.View层。View层即UI层,可采用的技术如JSP,Structs,SpringMVC等

 2.Controller层。Controller表示控制器层,可采用的技术,如Servlet/Filter,Spring等

 3.Service层。Service层表示核心服务层,向架构上层提供服务

 4.DAO层。DAO层表示数据访问层,可采用的技术如jdbc和ORM框架(如Spring JDBC,JPA,Hibernate,Mybatis等)

 5.Model层。Model层即表示JavaBean对象

 6.Utilities层。Utilities层表示公共工具层

1.1.2 开发框架演进

Web开发框架主要经历了四个阶段:

  • 阶段一:Servlet阶段
  • 阶段二:SSH(Spring+Structs+Hibernate)阶段
  • 阶段三:SSM阶段(Spring+SpringMVC+Mybatis)阶段
  • 阶段四,微服务阶段,本文不做讲解,后续会有专门的课程进行讲解。

下面我们分别介绍一下这四个阶段的主要开发思想:

阶段一:Servlet/Filter扮演控制器角色
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第1张图片

1.在该阶段架构模式中,Servlet/Filter扮演Controller角色,JSP扮演View角色,JavaBean扮演Model角色

2.该阶段的数据库访问技术为具体DB的jdbc 

缺点:

1. 前后端分离不彻底。由于JSP技术前后端分离不彻底,开发人员往往会在JSP页面中嵌套Java代码,从而需要前端开发人员懂java技术。

2. JSP页面可读性差,编写效率低,尽管引入EL,JSTL等技术

3. Sevlet/Filter作为控制器,面临的稳定性,安全性考验(Servlet是线程不安全的)等

4. 数据库访问技术采用传统的jdbc,造成过多的冗余代码

为了解决这些问题,JavaWeb专家们提出了一种架构思想:模块化,抽象化和专一化的思想。基于该思想
,涌向出一批专业化开源框架,其中较为出名的组合框架便是SSH了。

阶段二:SSH

在该架构模式中,Controller采用Spring框架技术,View采用Structs框架技术,DB访问技术采用Hibernate框架技术。从SSH中,很容易看出前后端出现了专业化,精细化分工,且朝框架演变,如前端框架采Structs,后端框架采用Spring等然而,SSH架构模式虽然解决了Servlet/Filter架构模式存在的问题,实现了专业化、精细化分工,实现了模块化和抽象化。

hibernate优点:

1、hibernate是全自动,hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。
2、功能强大,数据库无关性好,O/R映射能力强,需要写的代码很少,开发速度很快。 3、有更好的二级缓存机制,可以使用第三方缓存。
4、数据库移植性良好。
5、hibernate拥有完整的日志系统,hibernate日志系统非常健全,涉及广泛,包括sql记录、关系异常、优化警告、缓存提示、脏数据警告等

hibernate缺点:

1、学习门槛高,精通门槛更高,程序员如何设计O/R映射,在性能和对象模型之间如何取得平衡,以及怎样用好Hibernate方面需要的经验和能力都很强才行。

2、hibernate的sql很多都是自动生成的,无法直接维护sql;虽然有hql查询,但功能还是不及sql强大,当需要定制sql语句时,需要精通hql语言,学习成本大,并且不灵活。

阶段三:SSM
在SSH框架中,Hibernate虽然能满足业务需求,能解决业务,但其笨重不灵活,不能很好地实现可配置化的灵活方式,Structs也过于笨重。为了解决该问题,JavaWeb专家们又提出了另外一种架构模式,即SSM架构模式。程序执行流程图如下:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第2张图片
从流程图中可以看出,Spring MVC扮演Controller角色,SpringMVC中的V扮演View角色,Mybatis扮演数据库访问技术。

优点:

1、易于上手和掌握,提供了数据库查询的自动对象绑定功能。
2、sql写在xml里,便于统一管理和优化, 解除sql与程序代码的耦合。
3、提供映射标签,支持对象与数据库的orm字段关系映射
4、 提供对象关系映射标签,支持对象关系组建维护(关联表)
5、提供xml标签,支持编写动态sql
6、速度比Hibernate的速度较快

缺点:

1、关联表多时,字段多的时候,sql工作量很大。
2、sql依赖于数据库,导致数据库移植性差。
3、由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
4、不支持级联更新、级联删除。
5、Mybatis的日志除了基本记录功能外,其它功能薄弱很多。
6、编写动态sql时,不方便调试,尤其逻辑复杂时

在当前的JavaEE中,算是比较流行的开发模式了,也是大都数企业的技术选型之一

1.1.3 SSH和SSM的对比

其实就是Mybatis/hibernate对比,概括起来就是:

  • Mybatis:小巧、方便、高效、简单、直接、半自动化

  • Hibernate:强大、方便、高效、复杂、间接、全自动化

1.2 开发环境搭建

在讲解之前我们首先需要安装Maven环境。

1.2.1 安装Maven

1)从官方网站下载最新的安装包:http://maven.apache.org/download.cgi

解压并安装并安装:我下载的是:apache-maven-3.6.1版本,解压后路径为:D:\webserver\apache-maven-3.6.1
D:\webserver\apache-maven-3.6.1\bin 目录添加到path路径,这样在cmd命令窗口可以直接使用mvn命令

打开cmd命令窗口,输入:mvn -v 如果输出如下图所示结果,表示安装成功。
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第3张图片
2)修改Maven安装目录\conf\settings文件:配置默认仓库(即repository)的路径及阿里云镜像

首先在apache-maven-3.6.1目录下创建repository目录,作为我们的数据仓库。

小技巧:

  1. 数据仓库的目录,最好不要设置在C盘,因为可以会影响操作系统的性能,在操作系统重新安装时,可能会丢失。
  2. 数据仓库的镜像配置,最好配置为阿里巴巴提供镜像地址,这样下载依赖的Jar包时,速度较快。

配置默认仓库

<!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

去掉上面对的注释,修改“/path/to/local/repo”为数据仓库的路径,根据自己的情况修改
修改完如下:

<localRepository>D:\webserver\apache-maven-3.6.1\repository</localRepository>

阿里云镜像配置

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  </mirrors>

删除子节点的内容,修改为如下:

<!--阿里云镜像配置-->
<mirrors>
	<mirror>
		  <id>alimaven</id>
		  <name>aliyun maven</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		  <mirrorOf>central</mirrorOf>        
	</mirror>
</mirrors> 

1.2.2 IDEA配置Maven

小技巧:在IDEA开发工具中怎么配置默认maven路径及仓库呢?这样可以避免每次新建项目都需要指定自己的maven目录。方法如下:

  1. 选择菜单 File-> Other Setting -> Setting for New Projects...
    Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第4张图片
    2.在打开的Setting for New Projects窗口中,按照如下图操作进行设置:
    • Maven home directory: 选择我们的Maven安装目录;
    • User setting file: 首先右侧多选框打上钩,然后选择我们的Maven安装目录下的conf/setting.xml的文件
    • Local repository: 首先右侧多选框打上钩,然后选择我们的Maven安装目录下的repository目录
      Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第5张图片

1.2.3 IDEA配置字符编码

小技巧:设置全局字符集,让所有项目(包括新建)的字符集设置一致。

  1. 选择菜单 File-> Other Setting -> Setting for New Projects...
  2. 在打开的Setting for New Projects窗口中,搜索 encoding,然后把全局编码(global encoding)的下拉框和项目编码(project encoding)的下拉框都修改为utf-8

1.3 传统的Spring MVC开发实例

我们用一个实例来讲解传统的Spring MVC开发,通过实例,我们可以深入了解基于Spring MVC开发,到底需要做哪些工作,也为后面学习Spring Boot的简化开发提供对比。

1.3.1 使用IDEA开发工具创建web工程

新建工程:File-> New project...,按照如下四个步骤进行创建web工程:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第6张图片
步骤解释:

1) 第一步:选择Maven方式创建,同时,在 Create from archetype 前面的复选框上打钩,这个选项代表我们使用下面的原型进行创建工程,我们选择org.apache.maven.archetype:maven-archetype-webapp 这个原型模板创建web工程。
2) 第二步:输入组织名称、模块名称,项目版本一般采用默认
3) 第三步:如果已经设置过Maven的全局配置,那么这个步骤可以直接跳过,如果没有配置,需要根据自己的情况选择一下maven的按照路径及使用的配置信息、仓库路径;
4)第四步:项目名称不用修改,项目路径根据实际情况修改一下

这样一个初始的web项目就创建完了,下面介绍一下默认的项目结构:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第7张图片

1)默认的项目为我们创建了webapp目录,其中包含WEB-INF目录及web.xml文件,其中web.xml文件中没有具体内容配置;
2)pom文件中,默认为我们生成了版本信息及引入了打包所用的插件,但是基于Spring Mvc开发的jar包需要我们自己引入。

1.3.2 添加Spring Mvc相关的Maven依赖

在pom文件中添加对Spring Mvc的依赖,代码如下:

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>5.2.3.RELEASE</version>
 </dependency>

小技巧: Maven依赖Jar坐标查询

  1. 打开坐标查询官网:https://mvnrepository.com
  2. 搜索Spring Mvc,在搜索结果中选择正确的版本,打开界面后,选择这个插件需要引用的版本
  3. 复制打开界面中的坐标信息即可,如下图
    Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第8张图片

添加完毕后,我们可以从IDEA开发工具中看一下,添加完这个引用后,Maven会为我们导入哪些Jar包。如下图:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第9张图片
可以看出,Maven为我们导入8个与Spring Mvc有关系的Jar,每个包的作用如下:

(1) spring-core.jar:这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
(2)spring-beans.jar :这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行(IoC/DI)操作相关的所有类。 如果应用只需基本的IoC/DI支持,引入spring-core.jarspring-beans.jar文件就可以了。
(3) spring-aop.jar::这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理,也要在应用里包含这个jar包。
(4) spring-context.jar:这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类, JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
(5) spring-web.jar:这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、文件上传的支持类、Filter类和大量工具辅助类。
(6)spring-webmvc.jar:这个jar文件包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
(7)spring-jcl.jar:这个jar文件主要是负责日志源码分析。对LOG4J, SLF4J_LAL, SLF4J, JUL这些日志框架进行统一管理。
(8)spring-expression.jar:这个jar文件是Spring框架中一个强大表达式解析语言,支持在运行时动态的解析表达式给对象赋值。

1.3.3 完善工程目录

在src/main目录下创建java和resource目录,默认的目录的类型是不对,下面介绍一个小技巧,修改目录类型:

小技巧:修改文件目录类型

  1. 在目录上点击右键,选择 Mark Directory as -> Source Root 把java目录设置为源码目录
  2. 同样的方法设置resource目录设置为:Resources Root 资源目录,这个目录一般存放静态资源文件和配置文件
    Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第10张图片

1.3.4 修改配置文件

针对web项目,我们至少需要修改如下三个配置文件,才能让项目支持Spring Mvc:

 1、 web.xml 配置文件:Spring容器启动、spingmvc的前端控制器、字符集配置
 2、 Springmvc 配置文件
 3、 Spring 配置文件

下面分别介绍一下怎么去配置:

1.3.4.1 web.xml文件配置

对于web.xml文件,我们需要配置如下几项:

  1. 启动Spring的容器
  2. springmvc的前端控制器,拦截所有请求
  3. 字符编码过滤器

代码如下:



<web-app>
  <display-name>SpringBoot-lesson1display-name>

  
  <context-param>
    <param-name>contextConfigLocationparam-name>
    <param-value>
      classpath:spring-context.xml
    param-value>
  context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
  listener>

  
  <servlet>
    <servlet-name>springmvcServletservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    <init-param>
      <param-name>contextConfigLocationparam-name>
      <param-value>classpath:spring-mvc.xmlparam-value>
    init-param>
    <load-on-startup>1load-on-startup>
  servlet>
  <servlet-mapping>
    <servlet-name>springmvcServletservlet-name>
    <url-pattern>/url-pattern>
  servlet-mapping>

  
  <filter>
    <filter-name>CharacterEncodingFilterfilter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    <init-param>
      <param-name>encodingparam-name>
      <param-value>utf-8param-value>
    init-param>
    <init-param>
      <param-name>forceRequestEncodingparam-name>
      <param-value>trueparam-value>
    init-param>
    <init-param>
      <param-name>forceResponseEncodingparam-name>
      <param-value>trueparam-value>
    init-param>
  filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilterfilter-name>
    <url-pattern>/*url-pattern>
  filter-mapping>
  <welcome-file-list>
    <welcome-file>index.htmlwelcome-file>
    <welcome-file>index.htmwelcome-file>
    <welcome-file>index.jspwelcome-file>
  welcome-file-list>
web-app>

1.3.4.2 Springmvc 配置文件

对于Springmvc 配置文件,我们需要配置如下几项:

  1. 配置组件扫描的包路径
  2. 配置视图解析器
  3. 其他配置

在resource目录下创建spring-mvc.xml 文件,代码如下:其中有详细的注释,请仔细阅读

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!--SpringMVC的配置文件,包含网站跳转逻辑的控制,配置  -->
    <context:component-scan base-package="com.binge.springboot" use-default-filters="false">
        <!--只扫描控制器。  -->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--配置视图解析器,方便页面返回  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!--两个标准配置  -->
    <!-- 将springmvc不能处理的请求交给tomcat -->
    <mvc:default-servlet-handler/>
    <!-- 能支持springmvc更高级的一些功能,JSR303校验,快捷的ajax...映射动态请求 -->
    <mvc:annotation-driven/>

</beans>


由于我们的视图层文件都存放在/WEB-INF/views/ 目录下,因此我们需要创建此目录。

1.3.4.3 Spring 配置文件

对于Spring 配置文件,我们需要配置如下几项:

  1. 配置组件扫描的包路径
  2. 配置Mybatis相关信息

代码如下:有本文先不讲Mybatis的集成,因此,下面的配置文件中,我们只是添加了注释,没有具体的代码。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。  -->
    <!--=================== 数据源,事务控制,xxx ================-->
    <!--================== 配置和MyBatis的整合=============== -->
    <!-- 配置扫描器,将mybatis接口的实现加入到ioc容器中 -->
    <!-- 配置一个可以执行批量的sqlSession -->
    <!-- ===============事务控制的配置 ================-->
    <!--开启基于注解的事务,使用xml配置形式的事务(必要主要的都是使用配置式)  -->
    <!--配置事务增强,事务如何切入  -->
    <!-- Spring配置文件的核心点(数据源、与mybatis的整合,事务控制) -->

</beans>

1.3.4.4 测试代码编写

在view目录下先创建hello.jsp文件,代码如下:

<html>
<body>
<h2>Hello lesson 1!</h2>
</body>
</html>

1) 在java目录下创建com.binge.springboot包,然后在包下创建controller目录;
2) 在controller目录下创建Lesson1Controller.java 作为我们控制层的类,这个类编写一个方法,进行hello.jsp界面的访问,代码如下:

package com.binge.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/lesson1")
public class Lesson1Controller {

    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }
}

1.3.4.5 IDEA配置Tomcat并发布程序

点击Run—EDit Configurations…
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第11张图片
点击左侧“+”号,找到Tomcat Server—Local
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第12张图片
在Tomcat Server -> Unnamed -> Server -> Application server项目下,点击 Configuration ,找到本地 Tomcat 服务器,再点击 OK按钮
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第13张图片
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第14张图片
切换到Deployment,然后点击右侧的“+”,选择Artifact
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第15张图片
选择部署的项目:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第16张图片
点击OK后,部署完成,控制台会出现如下界面:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第17张图片

1.3.4.6 运行程序并测试

Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第18张图片
运行出现如下界面,说明运行运行成功:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第19张图片
输入测试地址:http://localhost:8080/springboot_lesson_war/lesson1/hello
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第20张图片
这个界面返回的就是应该是views/hello.jsp中的内容,测试成功!!!

1.3.5 总结

这个章节,我们使用IDEA开发工具搭建了Spring Mvc的开发环境,并写了一个最简单的例子。从这些步骤,大家可以看出,需要配置的文件特别多,而且稍有不慎,就会出现错误。对于新手来说,上手非常不容易,在这种情况,一些开发大牛就想,能否简化Maven的配置及去除配置文件,用最简单的方法去搭建一个开发环境呢?这时候,Spring Boot就出现了。这一章节的内容大家如果不理解,没有关系,我们只要了解传统的SSM开发很啰嗦,现在出现了一种更简单的开发框架Spring Boot,我们只需要站在巨人的身上开始我们简单的开发就可以了,下面正式开始Spring Boot的学习。

1.4 Spring Boot 简介

1.4.1 什么是Spring Boot?

Spring Boot 带来了全新的自动化配置解决方案,使用 Spring Boot 可以快速创建基于 Spring
产级的独立应用程序 。 Spring Boot中对一些常用的第三方库提供了默认的 自动化配置方案,使得
开发者只需要很少的 Spring配置就能运行一个完整的 Java EE 应用。

Spring Boot项目可以采用传统的方案打成 war 包,然后部署到 Tomcat 中运行。也可以直接打成可执行 jar 包,这样通过java -jar命令就可以启动一个Spring Boot项目 。

总体来说, Spring Boot主要有如下优势 :

• 提供一个快速的 Spring 项目搭建渠道,创建独立的 Spring 应用程序。
• 开箱即用 ,很少的 Spring 配置就能运行一个 Java EE 项目 。
• 允许通过 Maven 来根据需要获取 starter
• 提供了生产级的服务监控方案。
• 内嵌服务器(Tomcat 、 Jetty ), 可以快速部署。
• 提供生产就绪型功能,如指标、健康检查和外部配置。
• 纯 Java 配置,没有代码生成 ,也不需要XML 配直。

约定优于配置,这是 Spring Boot 的主导思想 。 对于 Spring Boot 而言 ,大部分情况下存在默认配置 ,你甚至可以在没有任何定义的情况下使用 Spring 框架,如果需要自定义也只需要在配置文件配 置一些属性便可以,十分便捷 。

1.4.2 快速上手Spring Boot

下面我们用一个实例,进行Spring Boot的开发框架搭建,同时,也可以和上一节传统的开发框架进行对比,看看基于Spring Boot的开发是否真的很方便。

1.4.2.1 IDEA搭建Spring Boot2.x 项目

File->New->Project 进行新建项目,在弹出的对话框中按下图进行操作:
在这里插入图片描述
next后,组的名称和工程的名称都需要修改,如下图:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第21张图片
Next,如图所示,需要打钩,开启热部署及lombok插件;
在这里插入图片描述
next后,选择左侧的web,然后右侧选择spring web 建立web工程:
在这里插入图片描述
next后
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第22张图片

1.4.2.3 默认项目目录

Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第23张图片
默认项目已经为我们生成了主类,配置文件、pom配置文件;pom配置文件已经为我们配置好了对Spring Mvc
的配置,同时也内置了tomat容器,我们不需要安装tomcat,不需要再去配置繁琐的xml文件,直接就可以生成一个web项目,下面开始写测试代码进行测试。

1.4.2.4 测试代码编写

com.binge.springboot.lesson12目录下创建包:controller;然后在此包下创建类:TestController.java,代码如下:

package com.binge.springboot.lesson12.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @RequestMapping("/index")
    public String index() {
        return "hello spring boot lesson 2";
    }
}

注意@RestController注释表示发布的是Restful接口

1.4.2.5 程序运行

在自动生成的主类 Lesson12Application.java 文件上点击右键,然后如下图操作启动程序:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第24张图片
出现下图框表示启动成功:
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第25张图片
启动日志中会,显示端口号及启动耗时,如图所示。

1.4.2.6 浏览器访问

打开浏览器输入:http://localhost:8080/index ,出现如下界面,说明接口可以正常访问。
Spring Boot2.x 开发技巧及实战 第1章:快速上手Spring Boot 2.x_第26张图片

1.5 总结

本文主要介绍web开发的演进、常用的几种开发框架;用一个实例介绍了传统的Spring Mvc项目搭建过程,同时也用了一个实例介绍了Springboot2.x怎么快速创建项目。通过对比发现,后者要简单的多。同时在此过程中,我们也介绍了几个小技巧,这些技巧都是我们在项目中用到比较多的,而且比较实用的。下一章,我们会学习Spring Boot2.x 的基础配置。

你可能感兴趣的:(Sprint,boot,Idea,spring,boot,spring,java)