SpringBoot3-快速入门
前置准备
- Jdk17环境
- idea 2021.2.1+才支持Java17
- Springboot 3.0.5+
开发百科书
Jdk17安装
- homebrew官网,神器
使用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配置文件,修改配置,重新启动修改的配置就能生效。- 注意,测试或生产上要避免这种处理的情况,避免不易排查问题。
-
- 官方提供的场景:命名为:
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-快速入门的更多相关文章
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Vue.js 快速入门
什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...
随机推荐
- VisionPro学习笔记(7)——FitLineTool
如果需要了解其他图像处理的文章,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice ...
- .NET 使用 OpenTelemetry metrics 监控应用程序指标
上一次我们讲了 OpenTelemetry Logs 与 OpenTelemetry Traces.今天继续来说说 OpenTelemetry Metrics. 随着现代应用程序的复杂性不断增加,对于 ...
- vs code 中开发 .net5 mvc
asp.net core mvc ------------ 安装vscode-solution-explorer,C# 2个扩展.遇到yes就点yes. 新建一个文件夹:D:\repos\Net5Mv ...
- 报错解决 :Resolved [org.springframework.web.bind.MissingServletRequestParameterException
报错解决 :Resolved [org.springframework.web.bind.MissingServletRequestParameterException 解决方法:RequestPar ...
- 简单的css3头像旋转与3D旋转效果
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简单的css3头像旋转与3D旋转效果 日期:2017-7- ...
- 微信小程序自动化_从环境搭建到自动化代码实现过程
前期准备 微信小程序作为现在流行的一种应用载体,很多小伙伴都有对其做自动化测试的需求,由于腾讯系 QQ.微信等是基于腾讯自研 X5 内核,不是谷歌原生 webview,所以调试会有些许差异(现在很多 ...
- Python 潮流周刊#57:Python 该采用日历版本吗?
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- FFmpeg开发笔记(三十二)利用RTMP协议构建电脑与手机的直播Demo
不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ.微信为代表的即时通信工具,能够实时传输文本和图片.其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊. 除了常见的图文即时通信,还 ...
- 免费且离线的同声翻译利器「GitHub 热点速览」
开源的翻译软件众多,但大多数依赖于翻译 API 服务,因此就需要联网.有次数限制.并非完全免费.然后,本周上榜的是一款可以离线使用的 Android 翻译软件:RTranslator,它创建于 4 年 ...
- nginx 反向代理(proxy)与负载均衡(upstream)应用实践
集群介绍 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器.这些服务器之间可以彼此通信,协同向 ...