SpringBoot

开发一个web应用,从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序,是要经历特别多的步骤;后来就用了框架Struts,再后来是SpringMVC,到了现在的SpringBoot;说到底就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,就是简化开发,约定大于配置,能迅速的开发web应用,几行代码开发一个接口。

随着 Spring 不断的发展,涉及的领域越来越多,项目整合开发需要配合各种各样的文件,例如SSM框架,各种配置文件可谓是非常的复杂。SpringBoot 正是在这样的一个背景下被抽象出来的开发框架,目的为了让大家更容易的使用 Spring 、更容易的集成各种常用的组件、开源软件。

SpringBoot 基于 Spring 开发,SpirngBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。SpringBoot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 SpringBoot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库,这些特点让我们可以开箱即用。

Spring Boot带入到Spring应用程序开发之中的,最重要的是以下四个核心:

  • 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。
  • 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
  • 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
  • Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

SpringBoot不是什么

首先,Spring Boot不是应用服务器。这个误解是这样产生的:Spring Boot可以把Web应用程序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。Spring Boot在应用程序里嵌入了一个Servlet容器(Tomcat、Jetty或Undertow),以此实现这一功能。但这是内嵌的Servlet容器提供的功能,不是Spring Boot实现的。

与之类似,Spring Boot也没有实现诸如JPA或JMS(Java Message Service,Java消息服务)之类的企业级Java规范。它的确支持不少企业级Java规范,但是要在Spring里自动配置支持那些特性的Bean。例如,Spring Boot没有实现JPA,不过它自动配置了某个JPA实现(比如Hibernate)的Bean,以此支持JPA。

最后,Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性,以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。

简而言之,从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。谢天谢地,幸好有Spring,你不用再写这些样板配置了,可以专注于应用程序的逻辑,这些才是应用程序独一无二的东西。

摘自《SpringBoot实战(第4版)》

项目搭建

创建项目

image-20220430110015311

配置项目信息

image-20220430110304105

依赖选择

  • 可选可不选,根据实际需求来,主要都是后期导入;先选择的话,选择Web下的SpringWeb以及Template Englines下的Thymeleaf就够用了;SQL可以勾选MySQL Driver,JDBC API 和MyBatis Framework;这里只选择SpringWeb以及Thymeleaf。
image-20220430110808757

修改存放路径

image-20220430111024588

项目结构

image-20220430112837309

简单配置

  • 在resources目录下新建application.yml,并写入如下信息(可不配置)
server:
  port: 8070   #端口号
  servlet:
    context-path: /test    #项目访问路径 即浏览器输入的路径 :localhost:8070/test
  • 启动项目不报错即搭建成功
image-20220430113603018

运行测试

  • src/main/java/com/jiumozhai目录下新建Controller包
image-20220430113805195
  • 新建TestController类,写入测试代码
package com.jiumozhai.Controller;

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

@Controller
public class TestController {

    @RequestMapping(value = {"/index",""})
    @ResponseBody
    public String test(){
        return "Hello World";
    }
}
  • 运行项目并在浏览器对应路径查看运行结果

image-20220430114515533

一个简单的SpringBoot项目就运行成功了,更多的内容可以参看中文文档