【SpringBoot】一:SpringBoot的基础(上)

news2024/10/2 22:18:57

文章目录

  • 1. 脚手架创建项目
    • 1.1使用Spring Initializr
    • 1.2 IDEA中使用脚手架创建项目
  • 2. 代码结构
    • 2.1 单一结构
    • 2.2 多模块
    • 2.3 包和主类
    • 2.4 pom文件
      • 2.4.1 父项目
      • 2.4.2 启动器
      • 2.4.3 不使用父项目
  • 3. 运行SpringBoot项目

1. 脚手架创建项目

脚手架辅助创建程序的工具,Spring Initializr 是创建 Spring Boot 项目的脚手架。快速建立 Spring Boot 项目的最好方式。他是一个 web 应用,能够在浏览器中使用。IDEA 中继承了此工具,用来快速创建 Spring Boot 项目以及 Spring Cloud 项目。

Spring Initializr 脚手架的 web 地址: https://start.spring

阿里云脚手架:https://start.aliyun.com/

1.1使用Spring Initializr

在这里插入图片描述

将脚手架项目引入IDEA并删除
在这里插入图片描述

1.2 IDEA中使用脚手架创建项目

在这里插入图片描述

2. 代码结构

2.1 单一结构

com.example.模块名称
            +----Application.java 启动类
			+----controller 控制器包
				---StudentController.java
				---ScoreController.java
			+----service 业务层包
				---inter 业务层接口
				---impl 接口实现包
			+----repository 持久层包
			+----model 模型包
				---entity 实体类包
				---dto 数据传输包
				---vo 视图数据包

在这里插入图片描述

2.2 多模块

在这里插入图片描述

2.3 包和主类

@SpringBootApplication 注释通常放在主类上,它隐式地为某些项定义了一个基本的“搜索包”

2.4 pom文件

<?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>

    <!--parent表示父项目-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <!--当前项目坐标-->
    <groupId>com.sdnu</groupId>
    <artifactId>Lession06-package</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Lession06-package</name>
    <description>Lession06-package</description>

    <!--jdk版本-->
    <properties>
        <java.version>17</java.version>
    </properties>

    <!--依赖列表-->
    <dependencies>
        <!--
            SpringWeb依赖
            带有starter单词的叫做启动器(启动依赖)
            spring-boot-starter-xxx:是SpringBoot官方推出的启动器
            xxx-starter:是非SpringBoot官方推出的启动器
        -->
        <!--
            starter启动器,是一组依赖的描述(说明那些maven, gav以及其它需要的gav)
            包含 依赖和版本 传递依赖和版本 配置类和配置项
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2.4.1 父项目

pom.xml 中的指定 spring-boot-starter-parent 作为坐标,表示继承 Spring Boot 提供的父项目。从
spring-boot-starter-parent 继承以获得合理的默认值和完整的依赖树,以便快速建立一个 Spring Boot 项目。 父项
目提供以下功能:
 JDK 的基准版本,比如<java.version>17</java.version>
 源码使用 UTF-8 格式编码
 公共依赖的版本
 自动化的资源过滤:默认把 src/main/resources 目录下的文件进行资源打包
 maven 的占位符为‘@’
 对多个 Maven 插件做了默认配置,如 maven-compile-plugin,maven-jar-plugin

2.4.2 启动器

starter 是一组依赖描述,应用中包含 starter,可以获取 spring 相关技术的一站式的依赖和版本。不必复制、
粘粘代码。通过 starter 能够快速启动并运行项目。
starter 包含:
 依赖坐标、版本
 传递依赖的坐标、版本
 配置类,配置

2.4.3 不使用父项目

快速创建 Spring Boot 项目,同时能够使用父项目带来的便利性,可以采用如下两种方式
(1)在项目中,继承 spring-boot-starter-paren
(2)pom.xml 不继承,单独加入 spring-boot-dependencies 依赖。

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-dependencies</artifactId>
			<version>3.0.1</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

3. 运行SpringBoot项目

 开发工具,例如 IDEA 执行 main 方法
 Maven 插件 mvn spring-boot:run
 java -jar jar 文件的路径

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

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

相关文章

《Java8实战》第12章 新的日期和时间 API

原来的Java的时间类Date、java.util.Calendar类都不太好&#xff0c;以语言无关方式格式化和解析日期或时间的 DateFormat 方法也有线程安全的问题 12.1 LocalDate、LocalTime、LocalDateTime、Instant、Duration 以及 Period 12.1.1 使用 LocalDate 和 LocalTime LocalDate…

Maven的概述

Maven是干什么用的 maven提供了一套标准的项目结构&#xff0c;这样可以让不同编译器所写的代码在任何一个编译器上都可以运行。 maven提供了一套标准化的构建流程 编译&#xff0c;测试&#xff0c;打包&#xff0c;发布->maven提供了简单的命令可以完成这些操作&#xf…

1秒解决notion客户端所有问题-历史上最简单

1 前言 你是否安装了enhancer后&#xff0c;notion打不开&#xff0c;一直报错&#xff1f;你是否为实现notion客户端汉化和大纲的各种操作而各种苦恼&#xff1f;你是否不习惯使用网页的开始&#xff0c;很想有一个客户端的notion&#xff01; 全部解决&#xff01; 2 网页…

如何理解线程池

线程池的核心状态 核心状态说明 在线程池的核心类ThreadPoolExecutor中&#xff0c;定义了几个线程池在运行过程中的核心状态&#xff0c;源码如下&#xff1a; private static final int COUNT_BITS Integer.SIZE - 3;private static final int CAPACITY (1 << CO…

不良事件报告系统源码,PHP医院安全(不良)事件报告系统源码,在大型医院稳定运行多年

PHP医院安全&#xff08;不良&#xff09;事件报告系统源码&#xff0c;不良事件系统源码&#xff0c;有演示&#xff0c;在大型医院稳定运行多年。 系统技术说明 技术架构&#xff1a;前后端分离&#xff0c;仓储模式 开发语言&#xff1a;PHP 开发工具&#xff1a;VSco…

AE开发20210531之色彩设置、渐变色、符号颜色、属性框内数据操作、另存图层、设计添加属性对话框

笔记 选择ID变化后&#xff0c;清空symbol&#xff0c;添加进新的来&#xff0c;渐变色设置符号颜色对属性框中数据进行操作另存图层&#xff0c;save方法savelayer打开属性对话框自己设计添加属性对话框 课程设计下一节课&#xff0c;图层的渲染 点符号&#xff0c;线符号&…

satoken+ gateway网关统一鉴权 初版

一&#xff1a;感谢大佬 本博客内容 参考了satoken官网实现&#xff0c;satoken官网地址&#xff1a; https://sa-token.cc/doc.html#/micro/gateway-auth 二&#xff1a;项目层级介绍 jinyi-gateway 网关服务jinyi-user-service 用户服务 2.1 jinyi-user-api 2.2 jinyi-use…

Docker 快速上手

目录 一、初始Docker 二、Docker基本操作 1、镜像操作命令 2、容器相关命令 3、数据卷 三、Deckerfile自定义镜像 1、镜像结构 2、自定义镜像 四、DockerCompose 一、初始Docker 镜像(lmage):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起&am…

Docker中配置Mysql主从复制

新建主服务器容器实例3307 进入/mydata/mysql-master/conf目录下新建my.cnf vim my.cnf [mysqld] ## 设置server_id&#xff0c;同一局域网中需要唯一 server_id101 ## 指定不需要同步的数据库名称 binlog-ignore-dbmysql ## 开启二进制日志功能 log-binmall-mysql-bin …

Spring中读取和存储Bean对象(5000字详解)

在Spring项目的创建和使用(Spring项目的创建和使用_蜡笔小心眼子&#xff01;的博客-CSDN博客)中&#xff0c;我们详细讲解了如何通过配置XML文件存取Bean对象&#xff0c;但是没新增一个Bean对象时就需要添加一个Bean标签&#xff0c;而且如果同一个Bean对象被多次注册到Sprin…

轻松掌握K8S命名空间、Pod、Deployment部署工具

1、NameSpace命名空间 在官方可视化工具界面为如下 也可以使用kubectl命令行具体看使用命令行操作 2、Pod应用组 k8s所说的应用通常就是指pod&#xff0c;一个pod可以部署多个容器。容器间共享网络空间&#xff0c;共享存储 3、根据应用类型选择部署Pod的工具 k8s官方也有对…

运行Omniverse Replicator Headlessly

运行Replicator Headlessly 学习目标 本教程的目的是向您展示如何不费吹灰之力地使用 Replicator。 Headless 在这种情况下意味着计算设备没有显示器或外围设备&#xff0c;例如键盘和鼠标。 为了做到这一点&#xff0c;我们将对 Replicator 的核心功能 - “Hello World”中解…

MyBatis-Plus Generator v2.0.8 ~ v3.1.1 最新代码自动生成器

一、概述 官网&#xff1a;https://baomidou.com/ 官方文档 &#xff1a;https://baomidou.com/pages/56bac0/ 官方源码地址&#xff1a; https://gitee.com/baomidou/mybatis-plus 官方原话&#xff1a; AutoGenerator 是 MyBatis-Plus 的代码生成器&#xff0c;通过 Auto…

高级篇七、InnoDB数据存储结构

1、数据库的存储结构&#xff1a; 页 1.1 磁盘与内存交互的基本单位&#xff1a;页 1.2 页结构概述 页a&#xff0c;页b&#xff0c;页c … 页n 这些页可以不在物理结构上相连&#xff0c;只要通过双向链表相关联即可每个数据页中的记录会按照主键值从小到大的顺序组成一个单项…

Qt5.12实战之图形编程初识

演示效果: 1.绘制条件: 1. 绘图设备-> QPainter 2.画笔->QPen --->字体 (QFont) 3.画刷->QBrush-->自己定义画刷(QPixmap) 4.绘制事件->QPaintEvent 绘图步骤: 1.重写基类的虚函数 void paintEvent(QPaintEvent *event); 2.在虚函数 void paintEvent…

C++---状态压缩dp---愤怒的小鸟(每日一道算法2023.4.19)

注意事项&#xff1a; 难度警告&#xff01;这题在NOIP中也算偏难的题&#xff0c;量力而行。 本题为"状态压缩dp—最短Hamilton路径"的扩展题&#xff0c;建议先阅读这篇文章并理解。 本题是"重复覆盖问题"可以使用"Dancing Links"做&#xff0…

MySql-高级( 面试问题简析) 学习笔记

文章目录 1. MySql 中 MyISAM 和 InnoDB 存储引擎区别1.1. MyISAM1.2. InnoDB 2. 索引的数据结构2.1. B Tree索引2.2. BTree索引2.3. MySql 做的优化 3. 为什么使用BTree索引而不使用Hash索引&#xff1f;4. 为什么使用BTree索引而不使用B-Tree索引&#xff1f;5. MyISAM 存储引…

检测并打印C++编译器支持的feature(附Visual Studio 2022测试结果)

C标准快速迭代&#xff0c;不同的系统平台和编译器对C各种新功能的支持不同&#xff0c;通过这个程序可以测试所用编译器对各个版本C的支持情况。另一方面&#xff0c;可以在代码中通过这些宏针对不同版本编写不同的代码分支。 源码下面附上Visual Studio 2022的测试结果&#…

【字符串处理】

目录 总结&#xff1a; 只要一做字符串的题目必出bug&#xff0c; 本蒟蒻还是要开个专题写一下……懒狗直接引用chatgpt 在C中&#xff0c;我们可以使用以下几种方式进行字符串的输入&#xff1a; 1.使用输入运算符(>>): 可以按照空格分隔符把一个标准字符串(即不包含…

引用的底层原理(汇编指令),引用与指针的联系与区别

TIPS 2. 3. 4. 引用的底层本质 在语法层面上的话&#xff0c;这个引用是不开空间的&#xff0c;相当于是对一个变量进行一个取别名的这么一个操作。在底层实现上实际是有空间的&#xff0c;因为引用是按照指针方式来实现的。然而如果你从底层的角度去看的话&#xff0c;因…