SpringBoot 创建和使用

news2024/11/15 17:47:40

SpringBoot 创建和使用

1. 初识 SpringBoot

Spring 的诞生是为了简化 java 程序的开发 , 而Spring Boot 的诞生是为了简化 Spring 程序开发.

Spring boot 翻译以下就是"脚手架" , 有了脚手架就可以快速的开发和使用 Spring .


2. Spring Boot 优点

  • 快速的集成框架: 快速添加外部的 jar 包 , 秒级集成各种框架.
  • 内置 web 框架 , 无需配置 Tomcat 等 web 容器 , 直接运行和部署程序
  • 易于部署:Spring Boot可以打包成可执行的 jar 包或 war 包,方便部署到各种应用服务器上 ,不依赖任何外部容器
  • 抛弃繁琐的 XML , 使用注解和配置的方式进行开发.
  • 支持更多的监控指标 , 可直接观察到项目的运行情况.
  • 易于测试:Spring Boot提供了一些测试工具,可以方便地进行单元测试和集成测试。

springBoot框架的本质上就是通过组合注解的方式实现了诸多spring注解的组合,从而极大地简化了spring框架本身的繁琐配置,实现快速的集成和开发。


3. Spring Boot 项目创建

3.1 使用 Idea 创建

1.专业版无需任何插件直接创建 Spring Boot 项目

2.社区版需要安装插件

社区版的插件经过多次的迭代 , 已经成熟稳定和专业版相差无几 , 因此我们使用社区版+插件的模式.

Tips: 此插件只有在 2021.x 版本是免费的.

安装 Spring Boot Helper 插件

image-20230417191657938

下载成功之后 , 创建新项目时就会出现 Spring Initializr.

Tips: 为了更好的兼容 , 建议使用 jdk 1.8 , 默认创建项目的源地址.

image-20230417193533136

参数设置中项目类型jdk 版本必须修改 , 其余按自己需求.

image-20230417194956060

选择 Spring Boot 版本(3.xx的 jdk 版本必须大于17) , 以及添加项目依赖(无需考虑依赖版本号).

image-20230417195521219

创建完毕之后 , 在启动类 DemoApplication 中 , 运行 main 方法 , 成功后说明项目创建完毕.


3.2 网页版创建

[访问网站](Spring Initializr)

配置与 Idea 创建一致.

image-20230417220253752

点击创建之后 , 会自动下载一个文件包 , 需要我们手动导入 Idea. 相当于一个备份文件 , 如果有时 Spring 网站无法访问 , 可以直接导入该包.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOuZzvSU-1683703469610)(null)]

在 Idea 中 open 该 file 即可.

image-20230417221210623


3.3 项目构成

1) 删除无关文件

创建好项目之后以下几个文件可以删除

  • .mvn 中的文件需要使用 maven 命令操作 , 而 Idea 右侧自带可视化的 Maven 窗口 , 因此可以删除.

image-20230417222231750

  • HELP.md 是一个自带的帮助文档 , 可以直接删除.

  • mvnw 和 mvnwcmd 同样是使用 Maven 命令操作打包 , 可以直接删除.

image-20230417222253139

2) SpringBoot 目录说明

3) 运行项目输出Helloworld

在启动类同级目录或子级目录中创建 testController 类

image-20230418170432994

设置 @Controller 修饰类 , 将该类加载到 Spring 容器中

@RequestMaping 注册一个路由 , 相当于 Servlet 中的 @WebServlert(“/url”)

@Controller//当前类加载到 spring 容器中
public class testController {
    //注册一个路由
    @RequestMapping("/sayHi") // = @WebServlet("/url")
    public String sayHi(){
        return "Hello world";
    }
}

启动程序后抛 404 异常.

image-20230418171448366

默认情况下 , 浏览器以为返回一个名字为 Hello world 的静态页面 , 而不是字符串.

因此加上 @ResponseBody 就告诉浏览器 , 当前类中的所有方法返回的都是非静态页面的数据.

@Controller//当前类加载到 spring 容器中
@ResponseBody
public class testController {
    //注册一个路由
    @RequestMapping("/sayHi") // = @WebServlet("/url")
    public String sayHi(){
        return "Hello world";
    }
}

结果如下说明访问成功

image-20230418171323064

Tips: 如果出现 @RequestMapping 和 @ResponseBody 报错 , 说明没有导入 web 依赖.

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

解决方法:

  1. Maven仓库中拉取依赖
  2. 安装插件 , 手动导入.

4. Spring Boot 设计理念

Spring Boot 设计理念: 约定大于配置

既想高效 , 又想让用户简便.

Spring Boot 无需配置 Bean 的扫描路径 , 因为 Spring Boot 提供了一些默认的 Bean 扫描路径,如 @SpringBootApplication 注解默认会扫描当前包及其子包下的所有 Bean。如果需要自定义 Bean 扫描路径,也可以通过 @ComponentScan 注解来实现。总之,Spring Boot 的自动配置机制使得开发者可以更加专注于业务逻辑的实现,而不需要过多关注配置问题。

具体来说,SpringBoot框架在设计时,为了简化配置,采用了如下的约定:

  1. 默认配置:SpringBoot框架会根据应用程序的类型和依赖库的配置,自动配置一些默认的参数和行为,如默认端口号、默认数据库连接池、默认日志等。
  2. 自动配置:SpringBoot框架会根据应用程序的类路径和依赖库的配置,自动配置一些常见的组件和功能,如Web组件、数据访问组件、安全组件等。
  3. 约定优于配置:SpringBoot框架在设计时,采用了一些约定,如默认的目录结构、默认的命名规则等,使得开发人员可以不用进行过多的配置,就能快速搭建一个可运行的应用程序。

总的来说,SpringBoot约定大于配置的设计思想,可以让开发人员更加专注于业务逻辑的实现,减少了配置的复杂性和细节,提高了开发效率和可维护性。

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

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

相关文章

【JSON】谷歌浏览器JSON可视化插件:JSON-Handle

摘要 : JSON-handle是一款对JSON格式的内容进行浏览和编辑&#xff0c;以树形图样式展现JSON文档&#xff0c;并可实时编辑。 今天我推荐一款chrome/Firfox下处理json的插件JSON-handle&#xff0c;这个应该是我用过最好最方便的了。 插件功能 实际开发工作中经常用到json数据&…

基于无线传感网络(WSN)的目标跟踪技术(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 无线传感器网络由于其自组织性、鲁棒性及节点数量巨大的特点,非常适合于目标跟踪。无线传感器网络中的移动目标跟踪实际上就是…

centerpoint论文和代码解读

目录 一、序论 二、论文结构 三、代码 论文地址&#xff1a; https://arxiv.org/pdf/2006.11275.pdf 代码地址&#xff1a;tianweiy/CenterPoint (github.com) 一、序论 centorpoint是一种anchor-free的方法&#xff0c;直接预测物体的中心点&#xff0c;然后直接回归其wh…

《微服务实战》 第四章 Spring Cloud Netflix 之 Eureka

前言 Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。 Spring Cloud 使用 Spring Boot 思想为 Eureka 增加了自动化配置&#xff0c;开发人员只需要引入相关依赖和注解&#xff0c;就能将 Spring Boot 构建的微服务轻松地与 Eureka 进行整合。 1、Eureka 两大组…

三维后处理与重建PACS源码,大容量图像存储 报告单多种模式及自定义样式

医学影像系统源码 三维后处理与重建PACS源码 医学影像系统由PACS系统、RIS系统组成&#xff0c;同时提供与HIS的接口&#xff08;HL7或其他类型&#xff09;。 主要功能介绍 信息预约登记 支持对患者、检查项目、申请医生、申请单据、设备等信息进行管理。且支持检查病人排…

SwiftUI中DatePicker学习

在界面开发中&#xff0c;经常要使用到DatePicker控件&#xff0c;如年月日&#xff0c;时分选择。 但我们还要修改它的显示方式&#xff0c;文字语言&#xff0c;及其他功能 先看下最简单的调用方法就是&#xff1a; State private var date Date()var body: some View {D…

STM32F10X--中断

中断 中断优先级数值越小&#xff0c;中断优先级越高 中断编程的顺序 1、使能的是外设&#xff0c;配置外设寄存器 2、配置中断优先级分组&#xff0c;在msic.h里面有中断优先级组分组函数 这个函数里面配置了SCB->AIRCR寄存器 3、配置NVIC寄存器&#xff0c;初始化NVIC…

可视化和回归分析星巴克咖啡在中国的定价建议

可视化和回归分析星巴克咖啡在中国的定价建议。星巴克的拿铁大杯Tall 在各国的价格。 Claude AI | 代码自动生成的数据可视化代码 选择Claude AI 而非 ChatGPT的理由是前者更懂中文​&#xff01;具体可以参见我前面的两篇文章对比两者的中英文翻译的表现及使用安装等难易程度​…

2.SpringBoot运维实用篇

SpringBoot运维实用篇 ​ 基础篇发布以后&#xff0c;看到了很多小伙伴在网上的留言&#xff0c;也帮助超过100位小伙伴解决了一些遇到的问题&#xff0c;并且已经发现了部分问题具有典型性&#xff0c;预计将有些问题在后面篇章的合适位置添加到本套课程中&#xff0c;作为解…

做公有云服务,为什么对象存储不可或缺?

试问&#xff1a;公有云的竞争&#xff0c; 你觉得从什么时候开始白热化了&#xff1f; 【全球云观察 &#xff5c; 热点关注】对于这个问题&#xff0c;可谓仁者见仁智者见智。 在我看来&#xff0c;火山引擎还未推出全面的云服务之前&#xff0c;在国内的公有云领域&#x…

KingbaseES V8R6运维案例之---MySQL和KingbaseES字符串排序规则对比

案例说明&#xff1a; 相同数据排序后查询&#xff0c;在MySQL和KingbaseES下得到的排序顺序不一致&#xff0c;本案例从MySQL和KingbaseES的排序规则分析&#xff0c;两种数据库排序的异同点。适用版本&#xff1a; KingbaseES V8R6、MySQL 8.0 一、MySQL的排序规则1、排序规则…

各种预训练模型的理论和调用方式大全

诸神缄默不语-个人CSDN博文目录 本文主要以模型被提出的时间为顺序&#xff0c;系统性介绍各种预训练模型的理论&#xff08;尤其是相比之前工作的创新点&#xff09;、调用方法和表现效果。 最近更新时间&#xff1a;2023.5.10 最早更新时间&#xff1a;2023.5.10 BertRobe…

上海亚商投顾:沪指缩量调整跌超1% 新能源车产业链掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日再度分化&#xff0c;沪指低开低走&#xff0c;午后一度跌超1.5%&#xff0c;创业板指则拉升涨超1%&a…

nodejs安装和环境配置-Windows

0.安装过程中遇到的常见问题 访问&#xff1a;https://blog.csdn.net/weixin_52799373/article/details/125718587?spm1001.2014.3001.5502 1.下载node.js 下载地址: https://nodejs.org/en/ 2.安装 2.1 安装 其实就是无脑下一步&#xff0c;第三步的时候可以选择自定义目…

springboot配置文件加载顺序, java启动参数优先级

搜索: "spring boot 外化配置" Spring Boot Reference Guide Spring Boot 中文文档 参考手册 中文版 SpringBoot中配置文件加载位置与优先级_apllication 配置文件项目启动时加载参数_流烟默的博客-CSDN博客 SpringBoot的外部化配置最全解析!_广州建站小戴BOTAO博…

k8s之HPA(Pod水平自动伸缩)

1.hpa介绍 HPA是根据指标来进行自动伸缩的&#xff0c;目前HPA有两个版本–v1和v2beta HPA的API有三个版本&#xff0c;通过kubectl api-versions | grep autoscal可看到 kubectl api-versions | grep autosca autoscaling/v1 autoscaling/v2beta1 autoscaling/v2beta2 查看使…

Uboot源码目录分析

在分析uboot源码之前一定要在Ubuntu中编译一下uboot源码&#xff0c;因为编译过程会生成一些文件&#xff0c;而生成的这些恰恰是分析uboot源码不可或缺的文件。 arch文件夹 存放和架构有关的文件&#xff0c;我们现在用的是ARM芯片&#xff0c;所以只需要关系arm文件夹即可 …

2.是人就能学会的Spring源码教学-Spring的简单使用

是人就能学会的Spring源码教学-Spring的简单使用 Spring的最简单入门使用第一步 创建项目第二步 配置项目第三步 启动项目 Spring的最简单入门使用 各位道友且跟我一道来学习Spring的最简单的入门使用&#xff0c;为了方便和简单&#xff0c;我使用了Spring Boot项目&#xff…

linux CentOs 安装 mysql8.0.30

心酸历程。。。 网上的各种教程都有各种bug&#xff0c;安了三个小时终于安好。现在奉上我的宝典秘籍。 第一步&#xff0c;去mysql官网下载&#xff0c;然后将下载的tar包放到linux里面&#xff0c;最好专门创建一个目录来存放&#xff0c;我放到了/usr/local/src的mysql目录下…

基于51单片机的简易电子秤

首先看看题目要求&#xff1a; 1.方案论证 &#xff08;1&#xff09;压力传感器的论证与选择 方案一&#xff1a;采用惠更斯电桥&#xff0c;当电阻应变片承受载荷产生变形时&#xff0c;其阻值将发生变化。从而使电桥失去平衡&#xff0c;产生相应的差动信号&#xff0c;但…