SpringBoot-初体验

SpringBoot简介

概述

SpringBoot是Spring生态的一个模块,现在有2个版本,但是SpringBoot2版本的更新幅度非常大,而且小版本更新也非常快!

在spring官网下划有2段话,就能看出Spring Boot的地位

With Spring Boot in your app, just a few lines of code is all you need to start building services like a boss.--在应用程序中使用Spring Boot,仅需要几行代码就可以构建服务
Originally [Netflix's Java] libraries and frameworks were built in-house. I'm very proud to say, as of early 2019, we've moved our platform almost entirely over to Spring Boot.”

作用

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".--能快速创建出生产级别的Spring应用

特性

- Create stand-alone Spring applications  创建独立的Spring应用程序- Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)  直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)- Provide opinionated 'starter' dependencies to simplify your build configuration  自动starter依赖,简化构建配置- Automatically configure Spring and 3rd party libraries whenever possible  自动配置Spring以及第三方功能- Provide production-ready features such as metrics, health checks, and externalized configuration  提供生产级别的监控、健康检查及外部化配置- Absolutely no code generation and no requirement for XML configuration  无代码生成、无需编写XML

参考地址

SpringBoot官网地址:https://spring.io/projects/spring-boot

SpringBoot版本说明:https://github.com/spring-projects/spring-boot/wiki#release-notes

SpringBoot结构

SpringBoot入门

SpringBoot入门可以参考地址:

https://docs.spring.io/spring-boot/docs/2.3.7.RELEASE/reference/html/getting-started.html#getting-started

系统要求

工具 说明
JDK java8,兼容Java15
Maven 3.3+
或者Gradle 6(6.3或更高版本)

创建maven工程

引入依赖

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.3.7.RELEASE</version></parent><dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency></dependencies>

创建主程序

@SpringBootApplicationpublic class MainApplication {    public static void main(String[] args) {        SpringApplication.run(MainApplication.class, args);    }}

编写业务

@RestControllerpublic class HelloController {    @RequestMapping("/hello")    public String hello() {        return "hello SpringBoot!";    }}

运行程序

执行主程序,浏览器发送:http://localhost:8080/hello

配置文件

web程序中有各种配置比如端口等,SpringBoot有默认值,但是也可以创建配置文件进行更改

配置的参考地址:https://docs.spring.io/spring-boot/docs/2.3.7.RELEASE/reference/html/appendix-application-properties.html#common-application-properties

比如:创建application.properties文件

server.port=9999

此时浏览器发送的地址为:http://localhost:9999/hello

简化部署

pom.xml

<build>    <plugins>        <plugin>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-maven-plugin</artifactId>        </plugin>    </plugins></build>

然后就可以把项目打成jar包,之后直接在目标的服务器执行即可!

上面是用maven创建的项目然后进行编写,在IDE中可以使用项目初始化向导(Spring Initailizr)

入门程序的说明

看一下引入的pom依赖

<groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.7.RELEASE</version>点进去可见有一个父项目的依赖<groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.7.RELEASE</version>接着点进去就可以看见里面有各种依赖,在里面搜索spring-boot-starter-web,可以看见 <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <version>2.3.7.RELEASE</version>  </dependency>

ps:看见各种的spring-boot-starter-*,这是SpringBoot内置的启动器,表示此场景下所需的依赖都进行导入

starter参考地址:

https://docs.spring.io/spring-boot/docs/2.3.7.RELEASE/reference/html/using-spring-boot.html#using-boot-starter

看一下引入spring-boot-starter-web之后的jar包继承图

总结一下SpringBoot的自动配置特点

  • 内嵌tomcat服务器

    <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-tomcat</artifactId>  <version>2.3.7.RELEASE</version>  <scope>compile</scope></dependency>
  • 具有SpringMVC的功能,也就是SpringMVC的常用组件默认也都能做

    <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-web</artifactId>  <version>5.2.12.RELEASE</version>  <scope>compile</scope></dependency><dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-webmvc</artifactId>  <version>5.2.12.RELEASE</version>  <scope>compile</scope></dependency>
  • 默认的包结构:主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来,依靠的就是@SpringBootApplication注解

  • 具有默认配置

    引入所需的场景starter之后,就有了此starter的默认配置,是以类展现的

    比如:

    public class Tomcat { protected Server server;    protected int port = 8080;    protected String hostname = "localhost";    protected String basedir;------------------------------------------------------------     @ConfigurationProperties(    prefix = "spring.servlet.multipart",    ignoreUnknownFields = false)public class MultipartProperties {    private boolean enabled = true;    private String location;    private DataSize maxFileSize = DataSize.ofMegabytes(1L);    private DataSize maxRequestSize = DataSize.ofMegabytes(10L);    private DataSize fileSizeThreshold = DataSize.ofBytes(0L);    private boolean resolveLazily = false;
(0)

相关推荐

  • 7、Spring Cloud Hystrix

    7、Spring Cloud Hystrix

  • 新春首发!Spring Boot 2 个新版本...

    现在基本都是使用 Spring Boot 框架进行系统开发集成,效率杠杠的,如果你还没用过 Spring Boot,那就太 out 了,对于新手,这里栈长再做个简单介绍: Spring Boot 框架 ...

  • 徒手撸一个Spring Boot中的starter,解密自动化配置

    starter背景 Spring Boot目前已经变成了后端开发这必备技能之一,其中一个主要原因是Spring Boot中有个非常重要的机制(starter机制). starter能够抛弃以前繁杂的配 ...

  • Spring 和 SpringBoot 之间到底有啥区别?

    链接:http://uee.me/cNDC8 概述 对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累 ...

  • SpringBoot运行原理

    pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  • 丢人不!还用System.out.println('''');太 Low了!

    作者:雨尔辰辰 1.日志框架 小张:开发一个大型系统: 1.System.out.println(''):将关键数据打印在控制台:去掉?写在一个文件? 2.框架来记录系统的一些运行时信息:日志框架 : ...

  • jboss( WildFly)上运行 springboot程序

    WildFly,原名 JBoss AS(JBoss Application Server) 或者 JBoss,是一套应用程序服务器,属于开源的企业级 Java 中间件软件,用于实现基于 SOA 架构的 ...

  • 得明亲子春令营初体验

    孩子身体的毛病,年龄越大,越难以根除,在无意识中影响他一生的发展,为解决这样的问题,得明健身在五一期间,特推出为期四天的,亲子春令营,锻炼.经络体检(建档并跟踪追访),给孩子一个健康光明的未来!!! ...

  • 【广东】夏雪晴《厨房初体验——凉拌海带丝》指导老师:林燕玲

    厨房初体验--凉拌海带丝 东华小学东城校区二年级 夏雪晴 一个风和日丽的早上,我开开心心地和外婆.妈妈一起去菜市场买菜,因为我今天要亲自尝试制作一道我最喜欢吃的美味菜肴--凉拌海带丝. 在制作之前,外 ...

  • 3千元贵在了哪?——贝纳利Tornado302赛道初体验

    前两天贝纳利正式发布了新款的飓风302,并以Tornado302的全新命名正式回归品牌,当然售价也回到了起初的29800元,在这个国产品牌降价的大潮,就有人质疑贝纳利是不是飘了? 品牌回归 29800 ...

  • 草堂小学之开学初体验

    成都学区房已获授权 本文是模仿另一篇热门文章<五朵金花小学的入读初体验-成师附小>,强行蹭热度. 开学已经2个多月了,草堂小学给我的总体感觉是那么好,放弃成外本部名额不亏. (请参考挨骂之 ...

  • 五朵金花之入读初体验——成师附小

    成都学区房已获授权 溜爸前言 这位家长是:跨城市搬到成都来读书的那种,之前还在东部一个沿海城市居住,现在已然来到成都,开始小学生活. 关于为什么要来成都,可查看这篇:上学是一件举家搬迁的事情,总要折腾 ...

  • Alibaba EasyExcel初体验

    简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel.相对于Apache POI来说,EasyExcel是从磁盘上一行行 ...

  • 开塞露の初体验o(╥﹏╥)o

    姐不在江湖,但江湖却有姐的传说...... 我身体有一个鸡肋的生理本能,去到一个新的地方,开始的几天都很难排便. 刚上高中那阵子,要再学校住宿,周末才能回家. 这就让我那个神奇的生理特质兴奋过了头. ...

  • 雪落无声伴课来——网络教学初体验

    清晨,拉开窗帘,见天灰蒙蒙的,像笼着一层薄烟. 细细地观看,哦!是下雪了! 这雪,轻,柔,细,像柳絮一般,从空中缓缓地飘落下来,袅袅婷婷,轻柔曼妙. 低头,俯瞰楼下的路,路面已经被罩上了一层薄薄的雪, ...

  • 试驾初体验 女司机全方位感受范爷同款科雷嘉

    点击上方 e汽车 关注我们 文 | 饭冰冰 微信号 | eautocar 写在前面的话 这里没有高大上的试驾图,也没有专业的测评词汇,有的只是一个女司机的真实试驾初体验-- 试驾车辆:东风雷诺科雷嘉 ...

  • 新登镇小 郎翊臻 || 老板初体验

    郁达夫少年文学院会员优秀习作 老板初体验 新登镇小 五年级 郎翊臻 这几天,新天地非常热闹,来了好多摆地摊的人,也包括我们,他们卖的商品五花八门,各式各样,还特别便宜. 而我们的摊位是这一条夜市的打卡 ...