使用Maven搭建Spring Boot框架
文章目录
- 前言
- 1.环境准备
- 2.创建SpringBoot项目
- 3.配置Maven
- 3.1 pom.xml文件
- 3.2 添加其他依赖
- 4. 编写代码
- 4.1 启动类
- 4.2 控制器
- 4.3 配置文件
- 5.运行项目
- 6.打包与部署
- 6.1 打包
- 6.2 运行JAR文件
- 7.总结
前言
Spring Boot 是一个用于快速构建 Spring 应用程序的框架,它简化了 Spring 应用的初始搭建和开发过程。Maven 是一个强大的项目管理和构建工具,可以帮助我们管理依赖、构建项目。本文将详细介绍如何使用 Maven 搭建一个 Spring Boot 项目。
1.环境准备
在开始之前,确保你的开发环境已经安装了以下工具:
-
JDK:Spring Boot 3.x 需要 JDK 17 或更高版本。建议安装 JDK 21。
-
Maven:用于项目依赖管理和构建。
-
IDE:推荐使用 IntelliJ IDEA 或 Eclipse。
2.创建SpringBoot项目
项目架构
demo/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/cy/demo/
│ │ │ ├── App.java # Spring Boot 启动类
│ │ │ ├── controller/ # 控制器层
│ │ │ ├── service/ # 服务层
│ │ │ ├── mapper/ # MyBatis Mapper 接口
│ │ │ └── entity/ # 实体类
│ │ └── resources/
│ │ ├── static/ # 静态资源
│ │ ├── templates/ # 模板文件
│ │ ├── application.yml # 配置文件
│ │ └── mapper/ # MyBatis Mapper XML 文件
│ └── test/ # 测试代码
├── pom.xml # Maven 配置文件
└── target/ # 编译输出目录
3.配置Maven
3.1 pom.xml文件
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.cy</groupId><artifactId>oa-server</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 引入springboot的父项目,统一版本管理,避免版本冲突--><parent>
<!-- groupid:表示依赖属于Spring Boot官方组织--><groupId>org.springframework.boot</groupId>
<!-- Spring Booot父项目模版--><artifactId>spring-boot-starter-parent</artifactId><version>3.2.1</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>4.3.0</version></dependency><!-- 分页依赖--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version></dependency></dependencies></project>
3.2 添加其他依赖
- 分页插件
<!-- 分页依赖--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version></dependency>
- JWT支持
<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>4.3.0</version>
</dependency>
4. 编写代码
4.1 启动类
App.java 是Spring Boot启动类
package org.cy.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class,args);}}
4.2 控制器
创建一个简单控制器 MyController.java:
package org.cy.demo.api;import org.cy.demo.common.vo.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author YunR* @date */
@RestController
public class MyController {@GetMapping("/t") //返回地址public R<?> test(){return R.OK("这是测试数据");}}
4.3 配置文件
在application.yml中配置数据库连接MyBatis:
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/oadbusername: rootpassword: rootmybatis:mapper-location: classpath:mapper/**/*.xml
logging:level:root: infoweb: traceorg.cy.demo: debugpagehelper:reasonable: truehelper-dialect: mysql
server:port: 9999# 自定义配置oa:token:expire-time:99999999999 # 令牌过期时间anonurls: # 无需登录直接可以访问的资源路径,可以使用ant格式- /security/login # 表示放行登录接口地址- /t
5.运行项目
- 在 IDE 中右键点击 App.java,选择 Run。
- 打开浏览器,访问 http://localhost:9999/t,你会看到返回的字符串"这是测试数据“”。


6.打包与部署
6.1 打包
在项目根目录下运行以下命令,将项目打包为 JAR 文件:
mvn clean package
打包后的 JAR 文件会生成在 target 目录下
6.2 运行JAR文件
java -jar target/demo-0.0.1-SNAPSHOT.jar
7.总结
通过本文,你已经学会了如何使用 Maven 搭建一个 Spring Boot 项目,并编写了一个简单的 Web 应用。Spring Boot 的强大功能可以帮助你快速构建现代化的 Java 应用程序。
相关文章:
使用Maven搭建Spring Boot框架
文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架,它简…...
RockyLinux 为 k8s 集群做准备
1.准备VM 镜像 开启虚拟机 选择安装 Rocky linux 9.5 软件选择最小安装就可以了 在 rocky 9 以后版本中 他全部 采用 network manager 去替换老的 network 去实现网络的管理 1.网卡配置 cat /etc/NetworkManager/system-connections/ens160.nmconnection 我们配置了两块网…...
安卓基础组件Looper - 02 native层面的剖析
文章目录 native使用使用总结创建Looper构造函数创建(不推荐)使用举例源代码 Looper::prepare 获取Looper可忽略初始化Looper主动休眠 pollAll主动唤醒 wake 发送消息 sendMessage轮询消息 native使用 Android Native Looper 机制 - 掘金 (juejin.cn) /system/core/libutils/…...
用大白话解释搜索引擎Elasticsearch是什么,有什么用,怎么用
Elasticsearch是什么? Elasticsearch(简称ES)就像一个“超级智能的图书馆管理系统”,专门帮你从海量数据中快速找到想要的信息。它底层基于倒排索引技术(类似书籍的目录页),能秒级搜索和分析万…...
机器学习的三个基本要素
机器学习的基本要素包括模型、学习准则(策略)和优化算法三个部分。机器学习方法之间的不同,主要来自其模型、学习准则(策略)、优化算法的不同。 模型 机器学习首要考虑的问题是学习什么样的模型(Model&am…...
二十三种设计模式
2 工厂方法模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通…...
Spring Boot 异步编程深入剖析
Spring Boot 异步编程深入剖析 1. 异步方法的使用 原理深度解析 Spring Boot 的异步方法基于 Spring 的 AOP(面向切面编程)实现。当在方法上添加 Async 注解时,Spring 会为该方法所在的类创建一个代理对象。当调用该异步方法时,…...
SqlSugar 语法糖推荐方式
//方式1:var dd _repository._Db.Queryable<ConfigAggregateRoot, UserRoleEntity>((o, p) > o.Id p.Id).Select((o, p) > new{o.Id,o.Remark,p.RoleId,});//方式2:不推荐使用,建议优先使用 Lambda 表达式,因为它更…...
SQL 全面指南:从基础语法到高级查询与权限控制
SQL:全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。 一、SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。 1). SQL语句可以单行或多…...
Spring Cloud Gateway 网关的使用
在之前的学习中,所有的微服务接口都是对外开放的,这就意味着用户可以直接访问,为了保证对外服务的安全性,服务端实现的微服务接口都带有一定的权限校验机制,但是由于使用了微服务,就需要每一个服务都进行一…...
【Spring Cloud Alibaba】基于Spring Boot 3.x 搭建教程
目录 前言一、开发环境二、简介 1.主要功能2.组件 三、搭建过程 1 - 主体工程搭建2 - 服务注册与发现组件 —— Nacos的安装3 - 服务注册与发现 —— 服务提供者4 - 服务注册与发现 —— 服务消费者5 - 服务配置中心6 - OpenFeign服务接口调用7 - OpenFeign高级特性8 - Spring…...
JavaWeb-jdk17安装
下载jdk17 地址:https://www.oracle.com/java/technologies/downloads/#jdk17-windows 安装jdk 配置环境变量 右键点击我的电脑>属性>高级系统设置>环境变量 在系统变量Path变量中添加 测试 java -version javac -version...
docker关闭mysql端口映射的使用
需求 项目中的数据库为mysql,如果将端口映射到宿主机上,容易被工具扫描出,且随着国产化的进程推进,mysql将不被允许。为了提高安全性与满足项目需求,这里采用隐藏mysql端口方式,不映射宿主机端口ÿ…...
【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享
更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...
算法1-4 蜜蜂路线
题目描述 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房 m 开始爬到蜂房 n,m<n,有多少种爬行路线?(备注:题面有误,右上角应为 n−…...
Android 常见View的防抖
在开发Android应用时,我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作,例如多次提交表单、重复加载数据等。为了避免这些问题,我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…...
数据库原理SQL查询(习题+知识点)
一、查询学生表所有学生记录 1.题目内容代码编写 select * from stu; 2.知识点提醒 1)选择表中的所有属性列有两种方法 在select关键字后列出所有列名若列的显示顺序与其在表中的顺序相同,则也可用 * 表示所有列 二、查询学生表中部分信息 1.题目内…...
安路FPGA开发入门:软件安装与点灯与仿真(TangDynasty ModelSim)
文章目录 前言软件安装开发软件仿真软件 点灯测试代码编写与编译引脚分配固件下载 仿真测试ModelSim添加仿真库TangDynasty仿真设置进行仿真 后记 前言 最近因为工作需要用安路的FPGA,这里对安路FPGA开发相关流程做个记录。作为测试只需要一个核心板(我这…...
Java 导出大数据到 Excel 表格
背景 之前的项目一直是用XSSFWorkbook来做 Excel 导出,在遇到大数据导出时,经常会遇到 OOM。在 Apache Poi 3.8 之后的版本提供的 SXSSFWorkbook 可以优雅的解决这个问题。 原理 SXSSFWorkbook 被称为流式 API,主要是因为它采用了流式写入…...
浅克隆与深克隆区别
package d12_api_object;public class Test2 {public static void main(String[] args) throws CloneNotSupportedException {//目标:掌握Object类提供的对象克隆方法//1、protected Object clone():对象克隆User u1 new User(1,"min","1120",…...
关于服务器cpu过高的问题排查
1.定位是哪个程序造成的cpu过高 如果有云服务器,就用云服务器自带的监控功能,查时间段 如果没有,则使用: ps -eo pid,comm,pcpu,pmem,cputime --sort-cputime | head -n 100 2.定位到问题 发现是uwsgi的cpu消耗过高࿰…...
【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二)
【缓冲区】数据库备份的衍生问题,缓冲区在哪里?JVMor操作系统?(二 完结) 缓冲区既属于操作系统,也属于 JVM,具体取决于你讨论的是哪个层面的缓冲区。下面我会详细解释这两者的区别和联系。 1. …...
RPA 职业前景:个人职场发展的 “新机遇”
1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…...
如何实现小数据的大智能?
大数据可以通过从态到势、从感到知的态势感知过程计算出可能性,如各种大模型,而要通过小数据、小样本获得好的预测结果,可以通过从势到态、从知到感的势态知感过程算计出可能性。 一般情况下,大家常常会提到了大数据和小数据在态势…...
打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题
一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、安装 Windows Docker Desktop - WSL问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Engine Stopped : Docker引擎停止三、解决方法 1、检查服务是否…...
基于单片机和蓝牙通讯的简易钢琴控制装置设计
摘要:本文设计了一个基于单片机和蓝牙通讯的简易钢琴演奏控制装置,在 Proteus 中设计绘制了系统电路原理图,在 Keil 中编写了单片机控制程序并导入 Proteus电路原理图中进行了软、硬件交互仿真,设置了手机蓝牙串口调试的键盘设置及…...
Linux常见操作命令以及编辑器VI命令
一.复制(cp)和移动(mv) 1.复制文件 格式:cp 源文件 目标文件 2.复制目录 格式:cp -r 源文件夹 目标文件夹 3.重命名和移动 重命名格式:mv 源文件 目标文件 移动格式:mv 源文件 目录/源文件 二.查看文件内容 1.cat命令 格式&#x…...
React Native从入门到进阶详解
React Native知识框架从入门到进阶的问题。首先需要结合我搜索到的资料来整理出结构化的内容。证据中有多本书籍和文章,可能会涉及不同的章节和重点,需要仔细梳理。 首先,根据邱鹏源的《React Native精解与实战》将知识分为入门和进阶两大部分…...
STL——list的介绍和模拟实现
前言 本篇博客我们将要开始介绍list这个容器,list是带头双向循环链表,STL标准模板库中实现了list这样方便我们去使用,那么本篇博客我们将脱下list的神秘外衣,介绍它的使用以及模拟实现。 list的介绍 list的底层是带头双向循环链…...
go前后端开源项目go-admin,本地启动
https://github.com/go-admin-team/go-admin 教程 1.拉取项目 git clone https://github.com/go-admin-team/go-admin.git 2.更新整理依赖 go mod tidy会整理依赖,下载缺少的包,移除不用的,并更新go.sum。 # 更新整理依赖 go mod tidy 3.编…...
