初学SpringBoot—01

news2024/11/26 20:50:06

注明:本人学习来源SpringForAll社区资料

我看到的资料中的springboot和idea版本较低,所以我这里在我学习后,理解并掌握的基础上将我用到的IDEA2022版本和Maven3.8.6做一个记录

学习SpringBoot前最好学习一下Maven和SSM框架

一、新建SpringBoot项目

  • JDK版本选择你现在用的版本,JDK版本问题构建失败解决方案在文章最下面

  • SpringBoot版本,如果你的JDK是1.8或其他低版本请选择3以下版本

上图是构建成功后里面的目录结构

二、HelloWorld

1、编写controller 

  •  DemoApplication设置类必须在父目录中,其他包或类也必须在其中,否则无效

2、执行入口文件

 3、访问

4、解释

  • @RestController相当于SpringMVC中的@Controller和@ResponseBody
  • SpringApplication就是启动应用程序的主类

三、自定义属性与加载

1、自定义属性

 2、编写类

  • 这里省略了Get,Set方法 

3、测试

测试成功

4、解释 

可以看出来SpringBoot集成了JUnit框架,把它作为默认的单元测试框架。

只需要设置注解@SpringBootTest就行,相对于Spring方便多了

这里看一下SSM项目的一个简单测试:

四、使用随机值

五、 通过命令行设置属性值

这里补充一下

上面我们在执行入口文件后控制台看到SpringBoot默认集成的Servlet容器是Tomcat,Tomcat版本高低随SpringBoot版本的高低,比如:我的SpringBoot是3以上版本,看到我的Tomcat版本是10版本。可以看到端口号为默认的8080

1、设置打包方式

 2、清除并打包

 3、执行命令

 

 可以看到通过 -- 对application.properties中的属性值server.port赋值为8888,也就是将服务器端口设置为8888,接下来就可以在浏览器进行访问。

4、屏蔽命令行访问属性

 这样,再通过命令行去执行,即使你设置了参数值,它也不管用了

六、多环境配置

在SpringBoot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties      开发环境
  • application-test.properties      测试环境
  • application-prod.properties     生产环境

至于哪个具体的配置文件被加载,需要在application.properties文件中配置

1、针对各环境新建不同的配置文件

示例

2、application.properties配置 

3、通过命令行方式去激活不同环境的配置 

将入口文件中禁用命令行参数代码注释,然后重新清除并打包,进入命令行

默认环境就是application.properties中配置的dev

  •  通过更改spring.profiles.active属性值为test,将环境更改为了test

7、JDK问题

如果JDK1.8版本实在用不了,就跟我的一样用JDK17,更改好后再重新按照我上面的步骤

  • 之后选择安装到自己指定的目录
  • 下载好之后,将项目SDK,Language level都选择为17
  • 关闭IDEA

  •  找到JDK17安装的文件夹,进入bin目录,复制路径
  • 把以前设置的其他JDK版本环境变量删掉
  • 按照上图,找到path设置环境变量,将复制的路径添加确定即可

在cmd窗口测试

在IDEA命令行测试

IDEA命令行必须是你下载JDK版本,如果是1.8或其他版本就是你以前设置的JDK环境变量没有删除干净 

8、总结

这是我今天自学学习到的内容,可谓是受益匪浅,虽然遇到很多配置、版本等问题,但也一一解决了,跟着我上面步骤走应该是没有问题的,毕竟是我测试过来的。
每一天进步!!下次更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ详解+实战+常见面试题

目录 RocketMQ是什么? RocketMQ的主要特点包括 RocketMQ 的消息模型 队列模型/点对点 发布/订阅模型 RocketMQ 的消息模型 RocketMQ中重要的组件 RocketMQ消费模式 RoctetMQ基本架构 springboot实战讲解 基本样例 单向发送 异步发送 同步发送 推模式…

chatgpt赋能python:Python多行换行:如何在Python代码中正确处理多行

Python多行换行:如何在Python代码中正确处理多行 在Python中,代码往往需要按照一定的格式进行排版,以使代码更易于阅读和维护。在编写长代码时经常会遇到一个问题:如何正确处理多行?本文将介绍Python中多行换行的方法…

嵌入式系统中SPI 子系统基本原理实现

1、SPI hardware SPI:Serial Perripheral Interface,串行外围设备接口,由 Motorola 公司提出,是一种高速、全双工、同步通信总线。SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,无应答机制。…

Mendix 创客访谈录 | 低代码开启新世界

本期创客 李垚 西门子汽车事业部IOT专家 任职于西门子中国DI事业部,主要负责汽车行业西门子产品业务拓展与支持,服务于中国区汽车生产企业。本人主要负责Siplant、边缘计算,低代码技术等产品的售前、售后技术支持和故障排除, 解决客户在产品…

VSCode+GDB+Qemu调试ARM64 linux内核

俗话说,工欲善其事 必先利其器。linux kernel是一个非常复杂的系统,初学者会很难入门。 如果有一个方便的调试环境,学习效率至少能有5-10倍的提升。 为了学习linux内核,通常有这两个需要 可以摆脱硬件,方便的编译和…

React新版扩展特性

目录 Hooks 三个常用的Hook State Hook Effect Hook Ref Hook Context Router 6 声明式路由 编程式路由导航 Hooks (1) Hook是react 18.8.0版本新增的特性/语法 (2) 可以让我们在函数式组件中使用state以及其他的react特性 三个常用的Hook (1) State Hook: React.useSt…

Redis进阶:缓存穿透|缓存击穿|缓存雪崩问题

Redis应用问题 1. 缓存穿透问题1.1 问题描述1.2 解决方案方法一:空值缓存方法二:设置可访问的名单(白名单)方法三:采用布隆过滤器方法四:进行实时监控 2. 缓存击穿问题2.1 问题描述2.2 解决方案方法一&…

在金融行业工作有哪些必须熟练掌握的 Excel 公式?

金融中需要掌握的 Excel 公式有很多,以下是一些重要的公式和技巧: 1. SUM、AVERAGE、MIN、MAX 等基本统计函数 2. IF、AND、OR 等逻辑函数 3. VLOOKUP、HLOOKUP、INDEX、MATCH 等查找函数 4. PMT、PV、FV、NPV、IRR 等财务函数 5. CONCATENATE、LEF…

nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞

第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Windows程序员的事实&a…

HarmoneyOS--从简单页面跳转开始2

此处对上个页面跳转适当增加内容,主要为List组件和grid组件的使用,适当熟悉最基本的容器Row和Column的使用 Login.ets // ts-nocheck import router from ohos.router; Entry Component struct TextDemo {State name:string State password:string bui…

vue2 + antd 封装动态表单组件(三)

最近有小伙伴在问动态表单如何再次封装,比如配合模态框或者抽屉封装多一层,这样可以大大提高开发效率,结合之前的写的 vue2 antd 封装动态表单组件(一) vue2 antd 封装动态表单组件(二) 做了…

【技术选型】时序数据库选型

文章目录 1、前言2、概述2.1 时序数据库的定义2.2 时序数据库的概念2.3 时序数据库的趋势 3、时序数据库对比3.1 influxdb3.2 Prometheus3.3 TDengine3.4 DolphinDB 4、选型结论 1、前言 时序数据治理是数据治理领域核心、打通IT与OT域数据链路,是工业物联网基石、…

Macos中Automator自动操作实现文本加解密、Json格式化、字数统计等操作

文章目录 一、说明打开Automator效果 二、文本加密三、文本解密四、Json格式化五、字数统计 一、说明 在 Automator 的工作流程中,动作是按照从上到下的顺序执行的,每一个动作的输出默认会成为下一个动作的输入。 打开Automator Command 空格 &#…

万万没想到系列,世界上最知名的失败建筑设计合集!

​ 大家好,这里是建模助手。 我们生活在由建筑包围的世界里,生活的面貌造就了建筑的多样性。而矗立的建筑也无言的记录着时代,尤其是一些建筑大师们的作品,可谓是集艺术和美学于一体的一流名作。 但,这不是凡事都有例…

虚拟内存原理介绍

文章目录 1. 虚拟内存介绍2. 虚拟寻址3. 虚拟地址空间3. 页表4. 地址翻译5. TLB加速地址翻译6. 多级页表7. 页面置换算法 1. 虚拟内存介绍 我们知道系统中的所有进程都是共享CPU和主存资源,但这样就会存在一个问题,这么多进程怎么知道主存上的一块内存是…

使用Java语言开发高效易用的--雅书阁商城管理系统

使用Java语言开发雅书阁商城管理系统 如果你正在寻找一种简单而优雅的方式来管理图书,那么使用Java语言开发雅书阁商城管理系统就是一个好选择。下面我们来详细介绍这个系统的开发过程。 效果展示 1.首页 2.注册界面 3.登录成功商城首页 4.购物车 5.电子书…

避开测试开发的常见陷阱:一份实战指南

陷阱一:过度依赖自动化测试 过度依赖自动化测试可能导致对复杂的用户交互和体验不够重视。自动化测试的力量在于它的一致性和覆盖广泛的可能性,但人工测试也同样重要,尤其是对于用户体验和复杂的用户交互。 示例:在一个电商网站…

ROS和ROS2使用

ubuntu20.04下安装qt5.12 https://blog.csdn.net/lj19990824/article/details/121013721 Ubuntu 20.04在桌面左侧边栏添加QT creator快捷图标 https://blog.csdn.net/kavieen/article/details/118695038 Qt和ROS:https://github.com/chengyangkj?tabrepositories…

操作系统原理 —— 内存覆盖与交换(十九)

什么情况下需要覆盖与交换 要弄清楚什么是覆盖与交换的概念,首先我们要知道在什么情况下才会使用到覆盖与交换。 在早期的计算机内存很小的时候,比如 IBM 推出的第一台 PC 机最大只支持 1 MB 大小的内存,因此会经常出现内存大小不够的情况&…

c++函数重载与运算符重载基础

什么是重载 重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。 重载的作用:重载函数常用来实现功能类似而所处理的…