当前位置: 首页 > 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”…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献

Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译&#xff1a; ### 胃肠道癌症的发病率呈上升趋势&#xff0c;且有年轻化倾向&#xff08;Bray等人&#xff0c;2018&#x…...

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】

1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...