Spring Framework 饱受非议的一点就是大量的XML配置以及复杂的依赖管理,开发人员不仅需要编写XML,而且在一些场景中需要编写繁琐的import语句,Boot描述了如何使用该框架在140个字符内实现可运行的web应用,从而获得了极大的关注度。

为什么要使用Spring Boot

答: Spring Boot基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

Spring Boot的特点

  • 为基于Spring的开发提供更快的入门体验
  • 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
  • SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

IDEA如何搭建SpringBoot项目

本身SpringBoot就是一个Maven项目,以上工具的方式,只是生成了一些默认的内容,如以下项目结构为工具生成

  1. 创建一个普通的maven项目路
  2. 在resources包下创建一个static包和public包,生成两个空文件夹,然后再生成一个Spring Boot的配置文件,默认为空,并在org.example下写一个启动类如:


3. 配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- 默认使用的Spring Framework版本为5.2.10.RELEASE --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>org.example</groupId><artifactId>springboot-study</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><dependencies><!-- spring-boot-starter-web: 基于SpringBoot开发的依赖包,会再次依赖spring-framework中基本依赖包,aop相关依赖包,web相关依赖包,还会引入其他如json,tomcat,validation等依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 排除tomcat依赖 --><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!-- 添加 Undertow 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency><!--引入AOP依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!-- spring-boot-devtools: SpringBoot的热部署依赖包 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><!-- 不能被其它模块继承,如果多个子模块可以去掉 --><optional>true</optional></dependency><!-- lombok: 简化bean代码的框架 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- spring-boot-starter-test: SpringBoot测试框架 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><!-- SpringBoot的maven打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- 明确指定一些插件的版本,以免受到 maven 版本的影响 --><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-jar-plugin</artifactId><version>3.2.0</version></plugin><plugin><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version></plugin><plugin><artifactId>maven-site-plugin</artifactId><version>3.3</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.2</version></plugin></plugins></build></project>

注意

  1. SpringBoot引入的是内嵌式服务器Tomcat9.0.39,该版本的Tomcat内嵌服务器,在启
    动时为了提高性能会加载本地库(需要下载该库文件),并且会使用 JDK9 以上版本的API,在启动就会
    报错(抛异常),虽然不影响使用,但是体验总归不太好。

2.可以改用另一种服务器,Undertow,该 Web服务器是红帽公司(RedHat)采用 Java 开发的灵活的高
性能 Web 服务器,它具有如下特性:
1). 完全内嵌式的Web服务器,直接使用 API 就可以启动一个 Web 服务器。
2). 完全兼容 Java EE Servlet 4 和低级非堵塞的处理器。
3). 提供包括阻塞和基于 NIO 的非堵塞机制。
在高并发请求的系统中,从性能测试的对比数据上看,Undertow 比 Tomcat 在内存和性能的表现更优,目前很多使用SpringBoot 的项目都将默认内嵌的 Tomcat 服务器更换为了 Undertow。 在SpringBoot中更换 Web 服务器非常方便,只需要调整 Maven 依赖,移除默认内嵌的 Tomcat 服务器,加入 Undertow 服务器即可,而使用上和 Tomcat 没什么不同。

基于SpringBoot项目的Web开发说明

嵌入式的Web服务器:SpringBoot 已经集成了 Tomcat,以后就不用像传统 Web 开发那样还需要下载一个 Tomcat程序,配置启动了。只需要启动生成的启动类即可。

  1. 默认的Web资源文件夹
    SpringBoot 默认会使用 src/main/resources 目录下的如下文件夹作为Web资源文件夹:
  • /static:静态资源文件夹,如html,js,css等存放
  • /public:静态资源文件夹,同上
    注:在以上路径中的资源,服务路径不需要在前边再加 /static,/public。如在 static 文件夹下的
    home.html ,服务路径为:/home.html
    如果是使用普通Maven项目搭建,可以自行创建以上文件夹,在 src/main/resources 下创建
    public 和 static 文件夹即可。
  1. 默认自动扫描
    SpringBoot默认会扫描启动类所在包,只要位于该包以下的使用了Spring注解的类,都可以注册到容器
    中,如以前学过的@Controller,@Service等

  2. 默认配置文件
    SpringBoot默认使用 src/main/resource/application.properties 作为启动的配置文件,可以自
    定义如启动端口等等配置。
    如果是使用普通Maven项目搭建,在 src/main/resources 下创建 application.properties ,内容
    为空即可。

  3. 默认上下文路径
    SpringBoot启动的Web项目,应用上下文路径默认为 /

  4. 常用配置

对Spring Boot还陌生吗?相关推荐

  1. Spring Boot 还能“内存泄露”?排它!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:美团技术团队(纪兵) 8rr.co/38Kh 排查过程 1. ...

  2. 惊呆了!Spring Boot 还能远程调试?

    目录 前言 什么是远程调试? 为什么要远程调试? 什么是JPDA? 如何开启远程调试? transport server suspend address onthrow onuncaught laun ...

  3. 使用 Spring Boot 快速构建 Spring 框架应用

    https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/index.html Spring 框架对于很多 Java 开发人员来说都不陌生 ...

  4. 使用 Spring Boot 快速构建 Spring 框架应用--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/ Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2 ...

  5. Spring Boot【快速入门】

    Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...

  6. springboot导包显示不存在_基础篇:Spring Boot入门体验(图文教程)

    优质文章,及时送达 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架.Spring Boot 是所有基于 Spring Framework 5.0 开 ...

  7. Spring Boot 最最最常用的注解梳理

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:blog.csdn.net/zhanglong_4444 一 ...

  8. Spring Boot Bean的使用,@Repository,@Service,@Controller,@Component

    前言 在Spring MVC的时候,我们使用xml来配置bean,如今的Spring boot推荐我们使用元注解的发生,那就听Spring Boot的推荐,下面我就为大家来介绍下Spring Boot ...

  9. security面试_精选41 道 Spring Boot 面试题,附答案!

    今天跟大家分享下SpringBoot 常见面试题的知识. 1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件 ...

最新文章

  1. 2022-2028年中国煤制甲醇产业投资分析及前景预测报告
  2. 特斯拉全新自动驾驶芯片最强?英伟达回怼,投资者用脚投票
  3. 从程序员到项目经理(20):让员工为目标而干活
  4. 阿里云 centos 远程可视化桌面部署
  5. java白钱买白_java实现百钱买白鸡
  6. java开源游戏下载安装_开源java扫雷游戏,Swing版。
  7. MySQL记住密码_技术分享 | mysqlsh 命令行模式 密码保存
  8. cookie+memcached实现单点登陆
  9. C++11 bind注意事项(传引用参数的时候)
  10. win7系统开机蓝屏提示hardware Monitor的解决方法
  11. 作者:程文亮(1989-),男,华东师范大学数据科学与工程研究院硕士生
  12. [必看]首先要求做到的事情![sumtec]
  13. swagger python自动化用例_自动生成robot自动化测试用例
  14. 18650锂电池保护板接线图_锂电池保护板几种接线方法介绍
  15. 【已解决】QQ异地登录,设备型号lya,设备名称LYA-AL10
  16. springboot项目启动参数详解
  17. 下载官方 Win11、Win10 镜像 ISO 的方法
  18. unity入门2.0
  19. Cyberpunk!特斯拉发布皮卡,造型雷翻众人
  20. 基于PHP的图书管理系统

热门文章

  1. landset8各波段_landsat8波段
  2. 视频直播 > 最佳实践 > 如何降低延时
  3. VMware 大中华区原厂认证讲师(大陆地区)2019-8-19 更新
  4. Docker学习总结(67)—— 取代 Dockerfile 的新型镜像构建技术 Buildpacks 详解
  5. Java基础学习总结(162)——如何保证线程安全?
  6. ActiveMQ学习总结(7)——ActiveMQ使用场景
  7. 如何查找cvpr类的论文_美国凯泽大学工商管理硕士:MBA论文案例编写类如何写?...
  8. 媒体查询Media Queries详解
  9. POJ 2299 Ultra-QuickSort(线段树+离散化)
  10. ionic 上拉加载更多