搭建后台框架

news2024/11/25 16:34:35

一、引入依赖

项目的包层级关系如下

依赖引入

<?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>com.like</groupId>
    <artifactId>ImageCrudProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>18</maven.compiler.source>
        <maven.compiler.target>18</maven.compiler.target>
    </properties>

    <dependencies>
<!--        springboot 启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
<!--     springboot web 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.1.0</version>
        </dependency>
<!--lombok依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
<!--        mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>

<!--       mysql依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>

<!--        连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.11</version>
        </dependency>
    </dependencies>
</project>

二、启动类

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.like.dao")
public class ImageCrudApplication {
     public static void main(String[] args) {
          SpringApplication.run(ImageCrudApplication.class,args);
     }
}

三、配置yml文件

# 配置端口号
server.port=3128

#链接数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/imagesups?&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=

#配置mp
mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
mybatis-plus.type-aliases-package=com.like.entity

#设置大文件上传
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=1024MB


#图片存储路径
images.path=D:/images/

四、相关配置

解决跨域问题

import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsConfig implements WebMvcConfigurer {

     //ctrl + i
     @Override
     public void addCorsMappings(CorsRegistry registry) {
          registry.addMapping("/**")
                  .allowedOriginPatterns("*")
                  .allowedHeaders(CorsConfiguration.ALL)
                  .allowedMethods(CorsConfiguration.ALL)
                  .allowCredentials(true)
                  .maxAge(3600);//1小时内不需要再校验(option请求)
     }
}

MP分页插件配置

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfig {
    //配置分页插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    //数据库类型是MySql,因此参数填写DbType.MYSQL
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

五、common包公共类创建

import lombok.Data;

//Dto是后端返回给前端的数据
@Data
public class CommonDto<T>{
     //业务上的成功失败
     private Boolean success = true;

     //返回给前端的数据
     private String message;

     //返回范型数据
     private T content;
}
import lombok.Data;

import java.util.List;

@Data
public class PageDto<T> {

     private Long total;

     private List<T> list;
}
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

//Vo用来接受前台的数据
@Data
public class PageVo {
     //第几页
     @TableField(exist = false)
     private int page;
     //每页多少条
     @TableField(exist = false)
     private int size;
}

六、后端框架搭建的一些相关问题

1.依赖引入相关问题

首先依赖的版本号要与项目相关版本号对应

在用Maven下载依赖的时候,我们常常会遇到依赖加载不进来,加载速度过慢的情况,这是我们的Maven的setting.xml配置文件中没有加入阿里的国内镜像源,加入后下载的速度就非常快了。

国内下载源及idea配置Maven 传送门

2.项目启动时

springboot项目启动时候,出现爆红如下,但是不影响项目正常运行

OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.

解决方式:

这是因为idea启动项目的时候会进行一些参数优化。是针对jdk 13版本以下的,jdk 13版本以上已经是过时参数了,并在未来会被删除。因此我们用的jdk17是不需要进行这个参数优化的。

勾选禁用启动优化

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

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

相关文章

cloudCompare教程:三、点云保存格式、自带截图

如果你没有统计法线&#xff0c;保存的点云文件中也是没有法线的。 如下格式&#xff1a; 1 //X;Y;Z;Original_cloud_index;2;intensity;tree 2 1903 3 -2.96899939;43.87673187;0.12744403;1.000000;nan;8.000000;99.000000 4 -2.72843552;43.74015808;0.15977502;1.000000;…

S型速度曲线轨迹规划(已知速度和距离)

S型速度曲线规划的基础知识可以查看下面这篇博客&#xff1a; 带平滑功能的斜坡函数&#xff08;多段曲线控温纯S型曲线SCL源代码完整算法分析&#xff09;_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线&#xff0c;可以参看下面这篇博客&#xff1a;PLC运动控制…

2023-9-29 JZ33 二叉搜索树的后序遍历序列

题目链接&#xff1a;二叉搜索树的后序遍历序列 import java.util.*; public class Solution {int [] seq;public boolean VerifySquenceOfBST(int [] sequence) {if(sequence.length < 0) return false;this.seq sequence;return dfs(0, seq.length - 1);}public boolean …

在 Python 中列出虚拟环境

文章目录 在Python中列出虚拟环境使用lsvirtualenv命令使用Conda命令使用workon命令 总结 虚拟环境是一个独立的环境&#xff0c;我们可以在其中安装库、包、脚本和Python解释器。如果你的项目需要不同版本的库或Python解释器&#xff0c;你可以为每个项目创建单独的虚拟环境。…

51单片机数字电压表仿真设计_LCD显示(仿真+程序+原理图+PCB+设计报告+讲解)

51单片机数字电压表仿真设计_LCD显示&#xff08;仿真程序原理图PCB设计报告讲解&#xff09; 原理图&#xff1a;Altium Designer 仿真版本&#xff1a;proteus 7.8 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0006 51单片机数…

使用关键字abstract 声明抽象类-PHP8知识详解

抽象类只能作为父类使用&#xff0c;因为抽象类不能被实例化。抽象类使用关键字abstract 声明&#xff0c;具体的使用语法格式如下&#xff1a; abstract class 抽象类名称{ //抽象类的成员变量列表 abstract function 成员方法1(参数); //抽象类的成员方法 abstract functi…

UG\NX二次开发 用程序修改“用户默认设置”

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 简介 可以用程序修改“用户默认设置”吗?下面是用代码修改“用户默认设置->基本环境->用户界面->操作记录->操作记录语言”的例子。 效果 代码 #include <uf_defs.h> #include <NXOpen/NXExcept…

Kafka-Kerberos票据刷新问题

线上kafka使用了 kerberos 认证&#xff0c;每隔24小时&#xff0c;票据过期&#xff0c;无法自动续期&#xff0c;出现消息发送失败问题。 从日志可以发现会有如下报错&#xff1a; 2023-09-14 17:48:47,144 [kafka-kerberos-refresh-thread-kafka/hdp-1HADOOP.COM] [] WARN …

MNIST手写数字识别

MNIST是一个手写体数字的图片数据集&#xff0c;该数据集由美国国家标准与技术研究所&#xff08;National Institute of Standards and Technology (NIST)&#xff09;发起整理&#xff0c;其包含 60,000 张训练图像和 10,000 张测试图像&#xff0c;每张图片的尺寸为 28 x 28…

点亮一个LED+LED闪烁+LED流水灯——“51单片机”

各位CSDN的uu们好呀&#xff0c;这是小雅兰的最新专栏噢&#xff0c;最近小雅兰学习了51单片机的知识&#xff0c;所以就想迫不及待地分享出来呢&#xff01;&#xff01;&#xff01;下面&#xff0c;让我们进入51单片机的世界吧&#xff01;&#xff01;&#xff01; 点亮一个…

在线小说阅读系统

在线小说阅读系统&#xff1a; 功能实现 1.一级菜单&#xff1a;登录 注册 退出系统 2.二级菜单&#xff1a;查看小说列表 上传小说 下载小说 在线阅读 返回上级菜单 技术要点 1.面向对象思想 oop思想 2.TCP通信 &#xff1a;Socket通信&#xff08;这里用TCP&#xff0c;…

【C++】:类和对象(1)

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关C中类和对象的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通…

Docker安装MS SQL Server并使用Navicat远程连接

思维导航 MS SQL Server简介 Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API),包括 T-S…

vue ant 两个页面 调用同一个接口 想在 前端的一个 接口传 一个固定的值 ,另外一个不变 ,查询条件默认值加上自己要的就好啦

vue ant 两个页面 调用同一个接口 想在 前端的一个 接口传 一个固定的值 &#xff0c;另外一个不变 查询条件默认值加上自己要的就好啦

【中秋国庆不断更】OpenHarmony多态样式stateStyles使用场景

Styles和Extend仅仅应用于静态页面的样式复用&#xff0c;stateStyles可以依据组件的内部状态的不同&#xff0c;快速设置不同样式。这就是我们本章要介绍的内容stateStyles&#xff08;又称为&#xff1a;多态样式&#xff09;。 概述 stateStyles是属性方法&#xff0c;可以根…

BUUCTF reverse wp 76 - 80

[CISCN2018]2ex 四处游走寻找关键代码 int __fastcall sub_400430(int a1, unsigned int a2, int a3) {unsigned int v3; // $v0int v4; // $v0int v5; // $v0int v6; // $v0unsigned int i; // [sp8h] [8h]unsigned int v9; // [sp8h] [8h]int v10; // [spCh] [Ch]v10 0;for…

【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

一、通知概述 通知简介 应用可以通过通知接口发送通知消息&#xff0c;终端用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用。 通知常见的使用场景&#xff1a; 显示接收到的短消息、即时消息等。显示应用的推送消息&#xff0c;如广告、版本更新等。显示…

Godot Identifier “File“ not declared in the current scope.

解决方案&#xff1a; f FileAccess.open(savedir, FileAccess.READ)

牛客网_HJ1_字符串最后一个单词的长度

HJ1_字符串最后一个单词的长度 原题思路代码运行截图收获 原题 字符串最后一个单词的长度 思路 从最后一个字符开始遍历&#xff0c;遇到第一个空格时的长度即为最后一个单词的长度 代码 #include <iostream> #include <string> using namespace std;int main…

Purism 推出注重隐私的 Linux 平板电脑

导读一款昂贵的 Linux 平板电脑&#xff0c;注重安全和隐私。让我们拭目以待。 Purism 是一家日益流行的计算机硬件产品制造商&#xff0c;专门提供配备注重隐私的开源 Linux 发行版的笔记本电脑、台式机和移动设备。 最近&#xff0c;他们发布了一款新产品 Librem 11 平板电…