【springboot 从入门到开发】3.springboot项目介绍

SpringBoot +Vue3前后端分离项目入门基础实例一 这是一个使用SpringBoot + MyBatis-plus + MySQL结合前端框架Vue3 + ElementUI plus + axios的基本的前后端分离项目,完成基本的增删改查以及基本权限功能的实例 阅读详情

在上一章节,我们已经创建好了一个springboot项目,那么我们先看看这个项目是长什么样子的。

项目目录结构说明:

①:还记得上一章节配置的包路径,就是对应着这个地方。

②:主程序启动类。

③:默认配置文件。

④:maven项目构建配置文件。

1.pom.xml

首先看看maven项目构建配置文件里面都有哪些信息项。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 此项目继承的项目,指定Spring Boot父 Starter依赖项的版本号。然后,对于其他启动器依赖项,不需要指定Spring Boot版本号 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!-- 项目组织的唯一标识符 :对应JAVA的包的结构,是main目录里java的目录结构-->
    <groupId>org.liurb</groupId>
    <!-- 项目的唯一标志:项目名-->
    <artifactId>springboot-demo</artifactId>
    <!-- 项目的版本号-->
    <version>0.0.1-SNAPSHOT</version>
    <!-- 项目的名称-->
    <name>springboot-demo</name>
    <!-- 项目的描述-->
    <description>springboot-demo</description>


    <!-- 项目的基本属性配置 -->
    <properties>
        <!-- Java版本-->
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- web应用基本环境配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 单元测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>


	<!--构建设置,plugins设置构建的插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

这里面可以看到一些“starter”的依赖包,那么这些是什么呢?springboot框架又是一个怎么样的框架呢?

Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的 starter(启动器),starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。

众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。

为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。

Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring Boot 也成为了时下炙手可热的技术。

Spring Boot 提供了大量开箱即用(out-of-the-box)的依赖模块,例如 spring-boot-starter-redis、spring-boot-starter-data-mongodb 和 spring-boot-starter-data-elasticsearch 等。这些依赖模块为 Spring Boot 应用提供了大量的自动配置,使得 Spring Boot 应用只需要非常少量的配置甚至零配置,便可以运行起来,让开发人员从 Spring 的“配置地狱”中解放出来,有更多的精力专注于业务逻辑的开发。

在springboot没流行前,主流是springmvc + spring + mybatis的年代,配置文件、各种依赖间jar包冲突等情况,真的搞得开发人员焦头烂额的。

springboot的出现,真的是解放了开发人员的额外时间,让他们更专注于业务的开发。而且从当时来看,spring的一个理念就是"约束大于配置",用约束来简化更多的配置。


接下来,我们来看看这个项目都大概引入了哪些依赖包。

点开"External Libraries",发现下面有很多依赖包被引入进来了,但是我们pom.xml文件里面只引入了一个"spring-boot-starter-web",这就是springboot已经帮我们将这个模块所需的依赖和配置都自动配置好了。同时我们配置了父类parent和版本号,这样就能够避免引入了不同版本的依赖导致冲突的情况。

2.主程序启动类

接下来,我们看一下项目的主程序启动类都有什么。

package org.liurb.springboot.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication  //标注这个类是一个springBoot的应用
public class SpringbootDemoApplication {

    public static void main(String[] args) {
        // 让Spring应用启动起来,就是启动spring的主入口
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }

}

 2.1 @SpringBootApplication

注解标记这个类是SpringBoot的主配置类(SpringbootDemoApplication),SpringBoot就运行这个类的main方法来启动SpringBoot应用。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration  
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {undefined
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
 

这一系列的注解在这里就不展开来说明,主要作用就是容器初始化的时候会读取配置类信息到容器中,相当于配置web.xml读取配置文件,有兴趣的同学可以找相关的文章来看。

2.2 SpringApplication.run

SpringApplication.run(主配置类的类对象,main方法的参数),这个功能就像很久以前Java的启动类,args就是启动类参数。

SpringApplication类主要做4个事情


1.推断应用的类型是普通的项目(普通的Java项目)还是Web项目【依据就是看你有没有导入web相关的jar包】


2.查找并加载所有可用初始化器,设置到initializers属性中


3.找出所有的应用程序监听器,设置到listeners属性中


4.推断并设置main方法的定义类,找到运行的主类【这也是我们向run()中传递当前这个类的class对象的原因】

具体的流程,有兴趣的同学可以自行查找相关的资料,这里就不做详细说明。 

3. application.properyies

应该加载的默认配置文件,一般项目中会使用yml文件后缀方式,后续文章中也主要使用yml文件方式进行说明。

Spring Boot支持.properties和.yml形式的配置文件,properties形式配置文件优先级高于yml形式的配置文件。

多环境切换

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

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

我们在applications.properties文件中可以通过如下设置进行环境配置的切换

#如需要本地开发加载dev配置

spring.profiles.active=dev

在实际的开发使用中,多环境的切换主要使用于数据库链接的配置、redis缓存链接的配置、远程调用api接口的网关域名配置等, 针对不同的环境可以快速的进行切换配置,在实际开发中可以变得更灵活。

具体的配置方式,在后续的文章中会陆续介绍。

WRF后处理总结:wrf-python与NCL在WRF后处理中的基本应用——变量提取、计算与可视化 判断需要提取的变量与诊断量确定后,使用getvar函数进行提取。可使用ncdump-h命令查看wrfout中的变量,wrf中的诊断量分类也可从官方文档处查阅。判断绘图类型所需的可视化绘图类型,决定了你在WRF后处理中的计算步骤。1D点线图:ll_to_xy interpline2D填色图:interplevel3D剖面图:vinterp vertcross绘图、美化色标、XY轴、标签的设置等等。 阅读详情

相关推荐

让Claude连续写代码24小时会发生什么?揭秘长时运行”架构背后的工程逻辑与未来

AI长时运行实验揭示软件开发新范式 Claude Opus通过Harness框架24小时独立开发全栈应用的成功实验,展示了AI从辅助工具向异步协作者的进化。实验采用"上下文轮转"机制解决记忆管理难题,将任务拆解为微周期并通过文件系统同步进度。核心突破在于:1)TDD成为AI自治基石,200+测试用例确保开发不偏航;2)文件取代对话成为AI间高效沟通介质;3)开发者角色重构为需求定义和框架设计者。该实验证明,通过严谨的架构约束和验收标准,AI可完成复杂长周期任务,预示着软件开发将从手工作坊

老孙 | Ethan Sun 的博客:AI 智能体与 AI 原生软件的工程实践 1094

Spring Boot 之主启动类

Spring Boot 主启动类注解介绍,三种复合注解介绍,启动类对配置类进行自动装配原理介绍,run() 方法工作流程、主启动类开始前后执行方法

欧尼熊不懂 的博客 7031

更多 LSTM 变种——应用于 CMAPSS 数据集

本文并模型介绍,只是把一些比较火的技术,像双向注意力机制,自注意力机制这样的比较火的内容,简单的和LSTM堆叠,结果发现效果都不如最基础的,这里作者将本人代码及实现结果,进行展示,给各位想更改LSTM的朋友一些。

2301_77491330的博客 1765

SpringBoot开发入门

1.2.1环境准备 JDK 1.8.0_201(及以上版本) Apache Maven 3.6.0 IntelliJ IDEA Ultimate旗舰版 1.2.2使用Maven方式构建Spring Boot项目 (1)使用Maven方式构建Spring Boot项目 (2)在pom.xml中添加Spring Boot相关依赖 spring-boot-starter-parent (1.统一进行版本控制2.让当前项目具有SpringBoot特性 3.加载指定的配置文件) spring-boot-sta

少说,多做。 822

解决 PyInstaller 与 `pathlib` 包不兼容的问题

为了避免 PyInstaller 和pathlib包的兼容性问题,最简单的解决办法就是卸载不必要的pathlib包。只需在命令行中运行卸载命令,然后重新打包即可。

Winfredzhang的博客 3225

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

mizhiakk的博客 8426

SpringBoot常用注解

目录 一、常用注解 1.@SpringBootApplication:标记该类为主程序启动类,用在程序入口类上 2.@Controller:标记该类是一个控制器 3.@RequestMapping:标记请求路径 4.@ResponseBody:将返回类型包装成一个json对象 5.@RestController:改注解是一个组合注解,等同于将@Controller和@ResponseBody两个注解组合使用 6.@Autowired:自动注入,从spring里的Bean中得到Bean对象 7

weixin_43624810的博客 1489

SAP 采购申请、采购订单的审批策略

采购申请、采购订单的审批策略 采购申请审批 PR审批可以分为:含分类、无分类 1、无分类PR审批: A、后台配置: 设置批准代码(批准代码可以设置多级审批): 发布批准标识使用系统已有的 “2 询价/采购订单”: 新建采购申请审批策略Z1(仅设置1级审批,一共可以设置8级审......

willieyuan的博客 2万+

【Spring Boot 初识丨四】主应用类

Spring Boot 主应用类及常用到的注解

爱媳妇儿爱编程 3642

实现两端固支梁热力耦合的有限元分析

在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。

CyberSparkZ的博客 396

使用 Python 爬取 Wikipedia 数据:抓取百科条目及其内容

维基百科的 API 提供了一些方便的接口,通过这些接口,我们可以轻松获取到维基百科的条目、类别、图片和其他相关信息。维基百科的 API 主要是基于 HTTP 请求的,通过向特定的 URL 发送 GET 请求来获取信息。:获取指定条目的内容。在本博客中,我们介绍了如何使用 Python 爬取维基百科的条目数据。通过使用 Wikipedia API 和网页抓取技术,我们能够高效地获取条目内容,并将其存储和分析。希望本篇教程能帮助你深入理解如何抓取和处理维基百科的数据。

2201_76125261的博客 476

如何在Spring-Boot中配置主类

如何在Spring Boot中选择不同的主类运行 我们在使用SpringBoot时,都会在某个类的main方法中写下SpringApplication.run(Classname.class, args)从而引导spring应用程序作为独立的应用程序运行。它创建一个适当的应用上下文实例并加载beans。 默认情况下,如果没有明确指定主类,Spring将在编译时在类路径中搜索一个主类,如果找不到或找不到多个主类,将无法启动。 让我们看看如何在Spring Boot中配置一个主类。 1. `@SpringB

m0_57473261的博客 2668

ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting `torch.set解决方案

本文主要介绍了ValueError:Using a `device_map`, `tp_plan`, `torch.device` context manager or setting 'torch.set_default_device(device)` requires `accelerate`解决方案,希望能对使用transformers的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

2、SpringBoot2入门

SpringBoot2入门

希望有点用 316

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java综合项目开发一课一得

Web 开发是 SpringBoot 重要应用场景,这部分会梳理 Web 开发基本脉络。从 Web 应用的工作流程讲起,用户通过浏览器发送请求,服务端接收、处理并返回响应,涵盖 HTTP 协议基础(请求方法 GET/POST 等、状态码含义 )。

lhx20060418的博客 617

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SpringBoot-3.3.4最新快速入门教程一

本篇通过目前最新最稳定的,SpringBoot3.3.4版本,jdk使用的是17为演示。SpringBoot3.0之后的版本,更新还是比较大的,相对于原来2.x的版本,改变幅度不小,但是小伙伴儿们,只需谨记SpringBoot是Spring官方提供的,快速开发项目的,就可以啦。

程序员Feri 2869

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringBoot 3 快速入门指南:从环境搭建到实战开发

SpringBoot 是基于 Spring 框架的快速开发框架,其核心目标是简化 Spring 应用的初始搭建及开发过程。SpringBoot 3 作为最新版本,基于 Java 17 构建,带来了性能优化、GraalVM 原生镜像支持、反应式编程增强等新特性,进一步提升了企业级应用的开发效率。核心优势自动配置(Auto Configuration):无需手动编写大量配置文件Starter 依赖:一站式引入所需功能的依赖集合生产级特性:内置健康检查、指标监控(Actuator)

2401_84589901的博客 1193

SpringBoot3学习总结

SpringBoot的主要目标是:为所有 Spring 开发提供更快速、可广泛访问的入门体验。开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整提供一系列大型项目通用的非功能性程序(如嵌入式服务器、安全性、指标、运行检查等)。约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件@Component@OverrideSystem.out.println("拦截器.......");

2301_76352996的博客 1914

SpringBoot3.X七天从入门到精通系列(1)

Spring Boot 3:开启新一代微服务开发之旅在这个快速变化的技术世界里,Spring Boot已经成为构建Java应用程序的首选框架之一。随着技术的进步,Spring Boot也在不断进化,Spring Boot 3便是这一进化历程中的最新里程碑。它不仅仅是一个版本号的更新,更是对现代应用开发需求深刻理解后的产物,旨在为开发者提供更加高效、灵活和强大的工具。简化一切,从起步依赖开始还记得那些年我们为了配置一个简单的Web项目而耗费的时间吗?

冲击AI顶流!!! 877

SpringBoot——SpringBootWeb项目

基于SpringBoot进行web应用程序开发

测试 1211

springboot 2.3_实战演练【SpringBoot入门搭建】

点击蓝色“IT乾坤”关注我哟加个“星标”,一起成长项目搭建使用技术开发环境:idea框架:Springboot工具:Maven前端:Html,Thymeleaf后台:Mybatis数据库:Mysql项目搭建【01】点击idea的File->new->Project,点击nextspringboot-build【02】选择Spring Initializr,点击nextspri...

weixin_39986543的博客 126

尚硅谷新版SSM框架全套视频教程,Spring6+SpringBoot3最新SSM企业级开发---SpringBoot3实战((2025JavaReview))

每个boot项目都有一个父项目parent的父项目是父项目版本仲裁中心,把所有常见的jar的依赖版本都声明好了。SpringBoot工程下,进行统一的配置管理,你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(或)中!配置文件应该放置在Spring Boot工程的目录下。这是因为目录是Spring Boot默认的类路径(classpath),配置文件会被自动加载并可供应用程序访问。细节总结:集中式管理配置。

Frank---7的博客 683

一、新建一个SpringBoot3项目

让我们一起来体验SpringBoot3与常用工具的结合运用,一起学习进步!

南风知我意,吹梦到西洲 673

SpringBoot3 快速启动框架

springbot

理想主义的花终将盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1981

SpringBoot3.x入门到精通系列:1.3 创建第一个SpringBoot 3.x应用

本文介绍了如何创建第一个SpringBoot 3.x应用程序。主要内容包括:使用Spring Initializr初始化项目,解析标准的SpringBoot项目结构,分析核心配置文件pom.xml,以及编写主启动类和REST控制器。文章详细展示了如何创建一个简单的"Hello World"接口,带路径变量的请求处理,返回JSON数据的方法,以及POST请求示例。通过本教程,开发者可以快速上手SpringBoot 3.x开发,掌握基本的REST API编写方法。

954

SpringBoot3入门

摘要:SpringBoot简化了Spring应用的开发,无需XML配置,内置Tomcat,默认支持JSON和RESTful。开发步骤包括:创建Maven工程,添加父工程和web启动器依赖,编写启动类(使用@SpringBootApplication注解),创建Controller处理器。启动类MainApplication通过SpringApplication.run()方法启动应用,HelloController则处理“/hello”请求。这种配置方式极大简化了Spring应用的搭建过程。

Filotimo_的博客 659
上一篇: 【springboot 从入门到开发】2.创建springboot项目
下一篇: 【springboot 从入门到开发】4.springboot项目运行
reui
博客等级 码龄17年 1万+粉丝 85原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

reui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值