Java开发:Spring Boot 实战教程

springboot项目开发实战 文章目录springboot项目开发实战之后端流程详解一、创建简单的springboot之web项目1、简单springboot框架环境搭建2、相关jar包的导入3、配置文件yaml的设置4、框架结构的梳理如过滤器和拦截器5、代码结构的书写1)controller层书写 springboot项目开发实战之后端流程详解 一、创建简单的springboot之web项目 1、简单springboot框架环境搭建 step1: step2: step3: step4: step5: 2、相关jar包的导入 阅读详情

序言

随着技术的快速发展和数字化转型的深入推进,软件开发领域迎来了前所未有的变革。在众多开发框架中,Spring Boot凭借其“约定大于配置”的核心理念和快速开发的能力,迅速崭露头角,成为当今企业级应用开发的首选框架之一。

《Spring Boot实战教程》旨在为广大开发者提供一本系统、全面且实用的学习指南。本教程不仅深入解析了Spring Boot的核心特性和最佳实践,还通过大量的实战案例,帮助读者快速掌握Spring Boot的应用开发技巧,从而能够高效、稳定地构建出符合业务需求的Web应用。

一、创建Springboot项目

  1. 创建Maven工程
  2. 导入spring-boot-stater-web起步依赖
  3. 编写Controller
  4. 提供启动类

二、手动创建SpringBoot工程

在这里插入图片描述

在这里插入图片描述

三、编写配置文件application.properties

删除application.properties配置文件,新建application.yml或application.yaml配置文件【两者区别请自行查询】
在这里插入图片描述
在这里插入图片描述

四、编写Controller

在这里插入图片描述

启动项目后在控制台会显示配置的端口

在这里插入图片描述

可以根据需要将pom文件中的jdk17改为jdk8【注意mybatis等三方依赖库的版本也需要降低】

在这里插入图片描述

五、提供启动类

在这里插入图片描述

六、启动服务,在浏览器调用http://localhost:8080/hello

页面返回Hello World~表示调用成功,项目搭建正常

------------接下来就可以进行业务相关接口开发了------------

七、执行sql语句【在navicat、idea或者dos窗口执行sql语句】

-- 创建数据库
create database big_event;

-- 使用数据库
use big_event;

-- 用户表
create table user (
                      id int unsigned primary key auto_increment comment 'ID',
                      username varchar(20) not null unique comment '用户名',
                      password varchar(32)  comment '密码',
                      nickname varchar(10)  default '' comment '昵称',
                      email varchar(128) default '' comment '邮箱',
                      user_pic varchar(128) default '' comment '头像',
                      create_time datetime not null comment '创建时间',
                      update_time datetime not null comment '修改时间'
) comment '用户表';

-- 分类表
create table category(
                         id int unsigned primary key auto_increment comment 'ID',
                         category_name varchar(32) not null comment '分类名称',
                         category_alias varchar(32) not null comment '分类别名',
                         create_user int unsigned not null comment '创建人ID',
                         create_time datetime not null comment '创建时间',
                         update_time datetime not null comment '修改时间',
                         constraint fk_category_user foreign key (create_user) references user(id) -- 外键约束
);

-- 文章表
create table article(
                        id int unsigned primary key auto_increment comment 'ID',
                        title varchar(30) not null comment '文章标题',
                        content varchar(10000) not null comment '文章内容',
                        cover_img varchar(128) not null  comment '文章封面',
                        state varchar(3) default '草稿' comment '文章状态: 只能是[已发布] 或者 [草稿]',
                        category_id int unsigned comment '文章分类ID',
                        create_user int unsigned not null comment '创建人ID',
                        create_time datetime not null comment '创建时间',
                        update_time datetime not null comment '修改时间',
                        constraint fk_article_category foreign key (category_id) references category(id),-- 外键约束
                        constraint fk_article_user foreign key (create_user) references user(id) -- 外键约束
)

八、整合mysql

在这里插入图片描述

九、整合mybatis

推荐使用Mybatis-plus,而且建议只使用Mybatis-plus的Mapper规范,Service依旧按照Mybatis的规范【具体实施参照本文第三十二项】。
mybatis中文网:http://www.mybatis.cn/
mybatis的mapper.xml映射文件存放位置说明:
https://www.jb51.net/program/30707796h.htm

在这里插入图片描述

十、配置application.yml文件

server:
  port: 8080
  servlet:
    context-path: /big-event2

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/big_event?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456
  redis:
    host: localhost
    port: 6379

#    下划线命名字段和驼峰命名属性的赋值问题【https://blog.csdn.net/Zong_0915/article/details/127453933】
mybatis:
  configuration:
    map-underscore-to-camel-case: true


十一、在包名下新建业务分类包

在这里插入图片描述

十二、通用实体类

返回结果实体类:

package com.source.bigevent2.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
   
   
    private Integer code;//状态码0成功;1失败
    private String msg;//提示信息
    private T data;//响应数据

    public static Result success() {
   
   
        return new Result(0, "操作成功", null);
    }

    public static <E> Result<E> success(E data) {
   
   
        return new Result<>(0, "操作成功", data);
    }

    public static Result<String> error(String msg) {
   
   
        return new Result<>(1, msg, null);
    }
}

分页返回结果实体类:

package com.source.bigevent2.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

//分页返回结果对象
@Data
@NoArgsConstructor
搭建SpringBoot项目——开发环境搭建开发环境搭建 SpringBoot 是 Java 社区最有影响力之一的开源的Spring后端开发框架,也是企业级应用开发的首选技术,Spring Boot 拥有良好的技术基因,它是伴随着Spring 4 而产生的技术框架,在继承了 Spirng 框架所有优点的同时也为开发者带来了巨大的便利,与普通的 Spring 项目相比,SpringBoot 可以让项目的配置更简化、编码更简化、部署更方便,为开发者提供了开箱即用的良好体验,进一步提升了开发者的开发效率。 阅读详情

相关推荐

Java Spring Boot 入门:开启高效开发之旅

Spring Boot 是一个基于 Spring 框架的开源项目,旨在通过自动化配置和内嵌服务器来简化 Spring 应用的初始搭建和开发过程。它提供了大量的开箱即用功能,使得开发者可以更加专注于业务逻辑的实现,从而提高开发效率。通过上述步骤,你已经成功创建了一个简单的 Spring Boot 应用。当然,这只是一个开始,Spring Boot 还有大量的功能等待你去探索。官方文档:阅读 Spring Boot 官方文档(),了解更详细的内容和高级特性。实践练习。

JID007的博客 1515

Spring Boot初级教程:从零搭建企业级Java应用

Spring Boot初级教程:从零搭建企业级Java应用

guse1125的博客 1448

springboot实战开发全套教程,让开发像搭积木一样简单!Github星标已上10W+!

前言 先说一下,这份教程在github上面星标已上10W,下面我会一一给大家举例出来全部内容,原链接后面我会发出来!首先我讲一下接下来我们会讲到的知识和技术,对比讲解了多种同类技术的使用手日区别,大家可以根据自己的喜好进行选择! 开发模式:本文讲解了历史悠久,但现在依然被广泛使用的分层应用开发模式 MVC( Model View Cont olle R),还 讲解了当下逐渐火热的响应式开发模式 Web FluX ORM ( Object Relational Mapping ,对象关系映射)框架:数据库的

欢迎您访问我的公众号【前程有光】 2440

Spring Boot应用开发深度解析:从入门到实战

SpringBoot是Spring家族中的一个新项目,旨在通过提供默认配置来简化Spring应用的初始搭建和开发过程。它集成了大量常用的第三方库,并通过条件化配置(ConditionalConfiguration)自动根据项目的类路径、属性设置和其他因素来决定配置哪些特性。核心特性包括独立运行:Spring Boot项目可以打包成可执行的jar包,使用java -jar命令即可运行。自动配置:Spring Boot根据项目依赖自动配置Spring框架和其他库。无代码生成和XML配置。

运维人生 1597

#前后端分离# 头条发布系统

SpringBoot 3.0+ Vue3.0

NVG_Haru的博客 1700

【Spring Boot】使用Spring Boot来搭建Java web项目以及开发过程

一、Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。SpringMVC是非常伟大的框架,开源...

每一名出色的架构师,必定是一位优秀程序员 19万+

Java Hibernate与Spring Boot集成实战教程

Java语言以其跨平台、面向对象的特性而闻名。通过Java虚拟机(JVM)的抽象,Java代码能够在不同的操作系统上以“一次编写,到处运行”的方式执行,极大地提高了开发的灵活性和软件的可移植性。对象关系映射(Object-Relational Mapping,简称ORM)技术是一种在关系数据库和对象之间进行自动映射的技术。它通过使用描述对象和数据库之间的映射的元数据,将程序中的对象自动持久化到数据库中。ORM框架减少了开发者直接编写SQL代码的需要,使得数据库操作更加面向对象。

weixin_36289742的博客 815

Spring Boot个人微博开发实战教程

Spring Boot是由Pivotal团队提供的全新框架,目的是简化Spring应用的初始搭建以及开发过程。它使用了特定的方式来进行配置,从而使开发人员能够快速启动和运行Spring应用。简而言之,Spring Boot能够让我们更专注于业务逻辑的实现,而不是繁琐的配置工作。Gradle的构建由任务(task)组成,每个任务是一个独立的工作单元。在Gradle中任务是用Groovy语言编写的,它可以执行一些动作,比如编译源代码、创建归档文件或者生成文档等。

weixin_30995917的博客 950

PlutoSDR在matlab中的环境配置(包括驱动和硬件支持包)

双击下载到的驱动,除了点击接受协议和设置安装路径,其他只要点击下一步或者安装即可。登录或者注册你的账号,选择你的matlab版本(这里我的是2023b),点击下一步。设置安装路径,并选择我接受,点击下一步,即可安装完成,并在安装路径中得到。完成后,打开设备管理器,在端口和通用串行总线设备一栏,即可看见下图。点击进入,选择相应的系统安装包,这里我选择的Windows。可看到我们要安装的Pluto支持包,安装即可。右击桌面matlab,选择打开文件所在位置。右上角搜索pluto,选择并点击下一步。

weixin_53160338的博客 4864

树莓派CM4 PCIe扩展方案与ASM1184e芯片应用

PCIe(Peripheral Component Interconnect Express)是计算机硬件中重要的高速串行总线标准,广泛应用于存储、网络等设备连接。其核心原理是通过差分信号实现高带宽传输,PCIe Gen2 x1的理论带宽可达5Gbps。在嵌入式开发中,PCIe扩展技术能有效解决单板计算机接口不足的问题,特别适合树莓派等微型平台。ASMedia ASM1184e作为PCIe交换芯片,可将单个接口扩展为多个,支持热插拔且免驱动,极大提升了工程灵活性。通过PCIe交换机方案,开发者能在树莓派CM

weixin_42602368的博客 421

java三角套利_三角对冲套利-EA原理全解析

它是两个直盘货币和一个交叉盘货币之间的相互对冲,交易员往往受到外界因素的影响无法严格执行造成亏损。该系统经过大量数据统计分析和严格的科学论证计算,并通过多年实盘交易验证可以达到稳定盈利。希望交易员严格按照交易规则执行。此策略利用交叉外汇对的市场价格与其合成价格的价差来实现套利,还以EUR/USD和GBP为例:1,我们关注三个外汇对:EUR/USD,GBP/USD,以及GBP/EUR2,计算GBP/...

weixin_29531897的博客 2418

CATIA CAA 二次开发去除面内开孔

测试模型: 代码说明:以下代码在拓扑级去除Face的内部loop,更改后的Body通过oispBody参数输出。主要使用CATSmartBodyDuplicator拓扑操作实现 HRESULT CAAStarterCmd::RemoveHoleOnFace(CATBody_var &ispBody,CATBody_var &oispBody){ CATLISTP(CATCell)olistFace; ispBody->GetAllCells(olistFace,2); CATF

weixin_45445751的博客 2264

PT静态时序分析实战:从基础命令到高级报告解析

本文详细介绍了PT(PrimeTime)静态时序分析(STA)的实战技巧,从基础命令如pt_shell和report_timing的使用,到高级报告解析与问题排查。通过丰富的实例和脚本示例,帮助工程师快速掌握时序分析的核心技能,提升芯片设计验证效率。

weixin_29289821的博客 954

生物信息学工具链搭建:用conda一键搞定MCScanX所有依赖(Ubuntu20.04实测)

本文详细介绍了在Ubuntu20.04系统上使用conda一键部署MCScanX及其所有依赖的高效方法,解决了传统源码编译安装中的依赖冲突问题。通过conda环境管理工具,研究者可以快速搭建生物信息学工具链,实现基因组共线性分析的高效运行,显著提升研究效率。

backprop5master的博客 247

YOLOv8剪枝 l1剪枝测试精度仅掉0.8个点,速度提高10.7fps!

文章摘要: 本文提出了一种基于组归一化的重要性评分方法GroupNormImportance,用于神经网络剪枝中的通道选择。该方法支持多种变体,包括标准L1范数、组L1范数和BN缩放因子等计算方式。核心实现包括三个关键部分:1)支持p范数计算(默认为L2);2)提供7种组重要性归约方法(如均值、最大值等);3)提供8种归一化方案(包括标准化、高斯化、LAMP等)。该方法输入一个剪枝组,输出各通道的重要性分数,通过依赖图可实现结构化剪枝。实验对比图展示了剪枝前后的效果差异,验证了该方法的有效性。

FJN110的博客 397

2026华为OD面试题029:勇攀数字高峰

在给定的数字地形图里寻找登山路径,数字代表当前位置的海拔高度。要求从最低海拔出发,不断攀登,最终到达最高山峰。地图保证最低海拔和最高山峰都只有一个。 登山规则: - 路径上的海拔必须严格递增 - 只能向上下左右 4 个方向移动 - 路径必须从最低海拔开始,到最高海拔结束 - 每个地点只能走一次 - 每一步的攀登高度差必须大于 0,且不超过指定值 `K` 输出满足条件的登山路径的数量。

琅嬛福地 115

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 合并jar和jar转dex
下一篇: Android开发:Glide基本使用以及加载https图片(配合OkHttp实现)
android157
博客等级 码龄9年 193粉丝 95原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值