当前位置: 首页 > news >正文

SpringBoot入门

在这里插入图片描述

文章目录

  • 前言
  • 一、约定大于配置
  • 二、使用步骤
    • 1.使用IDEA创建SpringBoot项目
    • 2.引入依赖
    • 3.测试
  • 三、application.properties和application.yml配置文件
  • 四、application.yml配置多环境
  • 五、测试:
  • 总结


前言

SpringBoot并不是一门新的技术栈,它的主要目的是为了去配置化开发,将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。


一、约定大于配置

SpringBoot的核心思想就是约定大于配置,什么是约定大于配置?

  • 开发人员仅需规定应用中不符合约定的部分
  • 在没有规定配置的地方,采用默认配置,以力求最简配置为核心思想

总的来说,上面两条都遵循了推荐默认配置的思想。当存在特殊需求的时候,自定义配置即可。这样可以大大的减少配置工作,这就是所谓的“约定”。

二、使用步骤

1.使用IDEA创建SpringBoot项目

在这里插入图片描述
在这里插入图片描述

最后点击finish结束

2.引入依赖

		<!--web启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!--配置元数据--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!--lombok注解--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>

3.测试

编写一个Controller来模拟访问

package com.lzl.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** --效率,是成功的核心关键--** @Author lzl* @Date 2023/3/3 09:54*/
@RestController
@RequestMapping("/login")
public class LoginController {@RequestMapping("/loginVerify")public String getLogin(){return "Hello world!!!";}
}

测试结果如下:
在这里插入图片描述

三、application.properties和application.yml配置文件

通常情况下,需要我们在配置文件中配置的,都是没有约定好的,在springboot项目中有两种配置文件的格式:

application.properties和application.yml都是SpringBoot的配置文件格式,不过二者还是有区别的

  • .properties书写格式要求不严格,通常采用一行式配置,而yml文件则有严格的书写格式,层级分明,如果不符合格式,编译就会报错。
  • 通常来说yml文件使用的人数更多,虽然它严格按照层级排列,但可读性较好
  • 当同时存在两者时,yml的优先级要大于properties文件。

yml支持的配置

#普通数据的配置
name: jack#对象的配置
user:username: rosepassword: 123#配置数组
array:beijing,tianjin,shanghai#配置集合
zhen:test:name: tomarr: 1,jack,2,tom  list1:      #这种对象形式的,只能单独写一个对象去接收,所以无法使用@value注解获取- zhangsan- lisilist2:- driver: mysqlport: 3306- driver: oracleport: 1521map:key1: value1key2: value2

取数据

package com.lzl.controller
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;@RestController
@RequestMapping("user")
public class UserController {@Value("${name}")private String name;@Value("${user.username}")private String username;@Value("${user.password}")private String password;@Value("${array}")private String [] array;/*** 获取 application.yml 中的数据* @return*/@RequestMapping("getYmlData")public String getYmlData(){System.out.println(name);System.out.println(username);System.out.println(password);System.out.println(Arrays.toString(array));return "success";}
}

四、application.yml配置多环境

在开发中,有的时候开发环境和测试环境的某些配置是不同的,通常我们会去编写不同的yml配置文件来解决这个问题。

  • 开发环境 appliaction-dev.yml
server:port: 9991servlet:context-path: "/dev"
  • 测试环境application-test.yml
server:port: 9992servlet:context-path: "/test"

除此之外我们还需要配置一个主配置文件application.yml来选择引用哪个环境

spring:profiles:active:- test

五、测试:

在这里插入图片描述
可以看到,项目启动就以9992端口,和/test作为项目路径了。


总结

本篇是SpringBoot的入门案例,更多的技术分享看下一篇

相关文章:

SpringBoot入门

文章目录前言一、约定大于配置二、使用步骤1.使用IDEA创建SpringBoot项目2.引入依赖3.测试三、application.properties和application.yml配置文件四、application.yml配置多环境五、测试&#xff1a;总结前言 SpringBoot并不是一门新的技术栈&#xff0c;它的主要目的是为了去…...

D. Constant Palindrome Sum(差分数组维护)

Problem - D - Codeforces 题意&#xff1a;给定长度为n的数组&#xff0c;每次操作可以选择一个数令a[i]变成[1,k]范围内的一个数&#xff0c;问最少需要多少次操作可以让a[i]a[n-i1]x (1< i < n/2)满足。 思路&#xff1a;利用差分数组d[i]表示x取i需要的总操作数。 …...

【C++】30h速成C++从入门到精通(IO流)

C语言的输入与输出C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C语言借助了相应的缓冲区来…...

文件变成chk如何恢复正常

许多人不知道chk文件是什么&#xff1f;其实它是用户在使用“磁盘碎片整理程序”整理硬盘后所产生的“丢失簇的恢复文件”&#xff0c;而在u盘、内存卡等移动设备读取数据过程中&#xff0c;由于断电或强制拔出也容易产生大量的chk文件。那么文件变成chk如何恢复正常呢&#xf…...

Meta最新模型LLaMA细节与代码详解

Meta最新模型LLaMA细节与代码详解0. 简介1. 项目环境依赖2. 模型细节2.1 RMS Pre-Norm2.2 SwiGLU激活函数2.3 RoPE旋转位置编码3. 代码解读3.1 tokenizer3.2 model3.2.1 模型细节详解3.2.2 transformer构建3.3 generate4. 推理0. 简介 今天介绍的内容是Facebook Meta AI最新提…...

3/6考试总结

时间安排 7:30–7:50 看题&#xff0c;T1,T2 感觉是同类型的题&#xff0c;直接搜索状态然后 dp 一下&#xff0c;T3 估计是个独角晒。 7:50–8:20 T3&#xff0c;有 n^2 的式子&#xff0c;然后可以优化到 n ,写暴力验证一下发现不对。很迷&#xff0c;反复推了几遍都拍不上暴…...

产品经理必读书单

产品经理必读书单&#xff0c;世界变化那么快&#xff0c;不如静下来读读书。在这个浮躁的时代&#xff0c;能够安静下来读书的人太少了。古人云&#xff0c;“读万卷书&#xff0c;不如行万里路&#xff0c;行万里路不如阅人无数”。很多人别说阅人无数了&#xff0c;上学的时…...

UEFI移植LVGL

自己组装过游戏主机的应该都有看到过&#xff0c;进入BIOS设置&#xff0c;酷炫的界面便呈现在眼前&#xff0c;而很多BIOS&#xff0c;使用的还是标准的界面。现在有个趋势&#xff0c;phoenix和insyde也在慢慢朝这种GUI界面发展&#xff0c;而AMI的使用C编写的界面已经非常完…...

RK356x U-Boot研究所(命令篇)3.8 test命令的用法

平台U-Boot 版本Linux SDK 版本RK356x2017.09v1.2.3文章目录 一、test命令的介绍二、test命令的定义三、test命令的用法一、test命令的介绍 test 命令定义在cmd/test.c,需要使能以下配置: obj-$(CONFIG_HUSH_PARSER) += test.o以下介绍摘自cmd/Kconfig: config HUSH_PARS…...

LCD液晶段码驱动IC/LCD液晶驱动芯片VK2C22高抗干扰/抗噪,适用于汽车仪表/单相智能电表

产品型号&#xff1a;VK2C22A/B产品品牌&#xff1a;永嘉微电/VINKA封装形式&#xff1a;LQFP52/48、DICE(COB邦定片)、COG(邦定玻璃用)产品年份&#xff1a;新年份原厂&#xff0c;工程服务&#xff0c;技术支持&#xff01;VK2C22A/B概述&#xff1a;VK2C22是一个点阵式存储映…...

OpenMMLab 目标检测

OpenMMLab 目标检测1. 目标检测简介1.1 滑窗2. 基础知识2.1 边界框&#xff08;Bounding Box&#xff09;3. 两阶段目标检测算法3.1 多尺度检测技术4. 单阶段目标检测算法4.1 YOLO: You Only Look Once (2015)4.2 SSD: Single Shot MultiBox Detetor (2016)5. 无锚框目标检测算…...

Jenkins部署angular11自动打包

可能年纪大了&#xff0c;对于新东西的学习和接收有点慢&#xff0c;花了差不多一周的时间&#xff0c;终于把jenkins配置好了&#xff0c;可以自动打包&#xff0c;与手动打出来的一样&#xff0c;以后就解放双手了。#!/bin/bashnpm cache clean -fnpm -vnode -vnpm install n…...

【状态管理】zustand 中文文档,它来了!!!

如果有兴趣了解更多用法及 api &#xff0c;点击此处解锁中文文档 前言 是不是觉得 Redux 很难用&#xff1f;想用 Context 代替&#xff0c;但是你知道吗&#xff0c;Context 也有个很大的缺点&#xff1a; context value发生变化时&#xff0c;所有用到这个context的组件都…...

【时序】特征工程-时间序列特征构造

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。 特征工程是什么? 特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的…...

【独家】华为OD机试 - 环中最长子串(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

JavaScript新手学习手册-基础代码(一)

什么是JavaScript&#xff1f; 百度百科 什么是控制台&#xff1f; 网页➡快捷键F12 进入Console就是控制台&#xff0c;它的作用与开发软件相同&#xff0c;可以进行代码的编写在紫色位置进行编写&#xff0c;另外console.log()方法所打印的内容都是在此进行输出。 一&#…...

Firewall App Blocker v1.7 防火墙管理设置工具多语言版

Firewall App Blocker 是一款由 BlueLife 与 Velociraptor 开发的免费且功能强大的防火墙设置软件。在 Windows 操作系统中,您可以使用 Windows 防火墙来阻止或解除阻止某些应用程序的联网,然而微软并没有为 Windows 防火墙提供一个易于使用的界面,来让用户使用其强大的功能…...

windows常用

方式1 ctrlaltdelete 可以进入管理内存 服务 查询在运行的端口 可以图形化结束端口进程 方式2 netstat -ano|findstr "端口号" taskkill -PID 进程端口号&#xff08;最后一列&#xff09; -F netstat -ano|findstr taskkill -PID -F 1.calc&#xff1a;启…...

从源码的角度告诉你 spark是怎样完成对文件切片

目录 1.说明 2.怎样设置默认切片数 2.1 RDD默认切片设置 2.2 SparkSQL默认切片设置 3. makeRDD 切片原理 4. textFile 切片原理 4.1 切片规则 4.2 怎样设置切片大小 4.3 测试代码 5.hadoopFile 切片原理 5.1 说明 5.2 切片规则 5.3 怎样设置切片大小 5.4 代码测试…...

剑指 Offer II 019. 最多删除一个字符得到回文

题目链接 剑指 Offer II 019. 最多删除一个字符得到回文 easy 题目描述 给定一个非空字符串 s&#xff0c;请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。 示例 1: 输入: s “aba” 输出: true 示例 2: 输入: s “abca” 输出: true 解释: 可以删除 “c”…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...