前置准备

  • Jdk17环境
  • idea 2021.2.1+才支持Java17
  • Springboot 3.0.5+

开发百科书

Jdk17安装

使用homebrew安装jdk17,安装完成后在idea就可以选择jdk17版本了。

#先搜索 openjdk版本
brew search openjdk
#查看要按照的版本详情
brew info openjdk@17
#安装
brew install openjdk@17
#注意,如果是内网搜索不到就选择安装其他版本的,或者从官网下载
#我们可以先在homebrew官网搜索openjdk #安装完成后如果本地有jdk8等其他版本,还要执行jdk17环境切换命令
sudo ln -sfn $HOMEBREW_PREFIX/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk #切换jdk8
sudo ln -sfn $HOMEBREW_PREFIX/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk

快速入门

Springboot特性

  • springboot只需要打成jar包,服务器有java环境就可以运行。

    • java -jar
  • 使用各种场景启动器starter进行应用整合,不再需要导包。

    • starter使用maven依赖直接帮我们把需要依赖的jar包引用进来。
  • 自动配置

    • 约定大于配置
    • 场景自带默认配置,需要自定义再在配置文件中修改即可。
  • 提供生产级特性,如:监控指标,健康检查(k8s),外部化配置(配置文件放在外部,重启后即可生效,不需要再打jar包)等。

  • 简化开发,无需编写任何配置,就可以直接开发业务

  • 简化集中管理配置,配置文件收敛为一个application.yml,不像以前ssm要配置多个,spirng有一个,springmvc一个,mybatisy一个等等。

Demo

  • 所有springboot项目都必须继承自pring-boot-starter-parent,因为springboot需要这个parent完成默认初始化依赖。

  • 创建一个springboot启动起来最简单的2个步骤:

    • 引入依赖parent,starter-web
    • 编写启动类
  • 之后这样就可以写Controller业务代码了

    • @RestController就是@Controller和@ResponseBody的合体
  • 项目打jar包: mvn clean package
  • 启动部署:执行 java -jar hellodemo-0.0.1-SNAPSHOT.jar 命令即可

  • 外部化配置处理。在jar包所在文件夹添加application.properties配置文件,修改配置,重新启动修改的配置就能生效。

    • 注意,测试或生产上要避免这种处理的情况,避免不易排查问题。
  • springboot starter 官方支持的场景

    • 官方提供的场景:命名为:spring-boot-starter-*
    • 第三方提供场景:命名为:*-spring-boot-starter

引入依赖

<!-- 所有springboot项目都必须继承自pring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.5</version>
</parent> <!-- web开发场景启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!-- springboot官方提供的应用打包插件,引用后就可以执行clean,install等命令-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

编写启动类

//@SpringBootApplication标识这是个springboot应用
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HellomotoApplication.class, args);
} }

业务类HelloController


@RestController
public class HelloController { @GetMapping("/hello")
public String hello() {
System.out.println("-------------hello-----------------");
return "hello world";
}
}

idea打开展示被排除的文件

SpringBoot3-快速入门的更多相关文章

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  7. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  10. Vue.js 快速入门

    什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...

随机推荐

  1. while适用于不确定循环次数

      // 当前有一个随机数,是生成100-999的随机数值         // 需要生成数值666,需要知道循环了多少次,才生成的666这个数值         // 我们可以通过循环来实现     ...

  2. 《Android开发卷——自定义日期选择器(一)》

    (小米手机) (中兴手机) 在实际开发中,Google官方提供的时间选择器API已经不能满足于我们的需要了,所以很多公司都是采用自定义的形式来实现日期选择器. 这个例子很简单,定义三个NumberPi ...

  3. JVM性能分析与故障排查

    引言 JVM调优 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高.请求延迟.tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高 ...

  4. 记一次cdh6.3.2版本spark写入phoniex的错误:Incompatible jars detected between client and server. Ensure that phoenix-[version]-server.jar is put on the classpath of HBase in every region server:

    Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl. ...

  5. Vulnhub Fall Walkthrough

    Recon 二层本地扫描,发现目标靶机. ┌──(kali㉿kali)-[~] └─$ sudo netdiscover -r 192.168.80.0/24 Currently scanning: ...

  6. 颠覆传统编程,用ChatGPT十倍提升生产力

    我们即将见证一个新的时代!这是最好的时代,也是最坏的时代! 需求背景 背景: 平时会编写博客,并且会把这个博客上传到github上,然后自己买一个域名挂到github上. 我平时编写的博客会有一些图片 ...

  7. Android 8.0 开机时间优化

    Android 8.0 开机时间优化 背景 在嵌入式行业中,有些搭载 了Android系统的设备由于 开机时间 过长而导致无法被接受. 介绍 启动时间是系统性能的重要组成部分,因为用户必须等待启动完成 ...

  8. QT学习:01 工程文件详解

    --- title: framework-cpp-qt-01-工程文件详解 EntryName: framework-cpp-qt-01-project-file date: 2020-04-08 1 ...

  9. SpringMVC原理(1)-文件上传请求

    我们文件上传接口只需要在方法参数上写MultipartFile类,mvc就可以帮我们把上传的文件封装为这个类的对 象供我们非常方便的操作,那它是怎么做的呢?我们一起来看看 我们发的请求默认都是由Dis ...

  10. 嵌入式进阶之关于SPI通信的案例分享——基于全志科技T3与Xilinx Spartan-6处理器

    本文主要介绍基于全志科技T3与Xilinx Spartan-6的通信案例. 适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境 ...