SSM项目初始化流程与操作概念解释-SpringBoot简化版

news2024/10/5 18:39:42

文章目录

        • 1.引入概念
        • 2.导入依赖
        • 3.项目配置
        • 4.依照SpringMVC框架构建项目

1.引入概念

例如某一个XX系统,该系统存在前台页面(给用户直观看或使用),和后台页面(给管理人员调整数据和权限)。
这二个页面都通过后端对接数据库的数据,二个后端的模块因为存在功能的差异性而要单独设计,但是存在大量对表数据操作的重复代码(例如CRUD),从而引入了公共子模块(都能调用)。

GPT:公共子模块(Common Module)(常见命名:frameWork或Common)是一种独立的模块类型,它可以在多个项目或模块之间共享和重用。公共子模块通常包含一些通用的功能或代码,这些功能或代码可以被多个项目或模块共享。公共子模块可以独立构建和发布,从而提高了代码的重用性和可维护性。

为了组织控制这三个子模块(2后端1公共)引入父模块,用于整个项目依赖构建、维护。
实际体验(快速清理临时文件,构建):
![[photo/Pasted image 20231116160120.png]]

2.导入依赖

父模块xml:

    <!-- 依赖声明 -->  
    <dependencyManagement>  
        <dependencies>  
  
            <!-- SpringBoot的依赖配置-->  
            <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-dependencies</artifactId>  
                <version>2.5.15</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
  
            <!--fastjson依赖-JSON数据的处理和转换-->  
            <dependency>  
                <groupId>com.alibaba</groupId>  
                <artifactId>fastjson</artifactId>  
                <version>1.2.33</version>  
            </dependency>  
  
            <!--jwt依赖-令牌-->  
            <dependency>  
                <groupId>io.jsonwebtoken</groupId>  
                <artifactId>jjwt</artifactId>  
                <version>0.9.0</version>  
            </dependency>  
  
            <!--mybatisPlus依赖-->  
            <dependency>  
                <groupId>com.baomidou</groupId>  
                <artifactId>mybatis-plus-boot-starter</artifactId>  
                <version>3.4.3</version>  
            </dependency>  
  
            <!--Excel工具 -->  
            <dependency>  
                <groupId>com.alibaba</groupId>  
                <artifactId>easyexcel</artifactId>  
                <version>3.0.5</version>  
            </dependency>  
  
            <!--swagger2接口文档-->  
            <dependency>  
                <groupId>io.springfox</groupId>  
                <artifactId>springfox-swagger2</artifactId>  
                <version>2.9.2</version>  
            </dependency>  
            <dependency>  
                <groupId>io.springfox</groupId>  
                <artifactId>springfox-swagger-ui</artifactId>  
                <version>2.9.2</version>  
            </dependency>  
  
<!--            &lt;!&ndash;阿里云OSS&ndash;&gt;-->  
<!--            <dependency>-->  
<!--                <groupId>com.aliyun.oss</groupId>-->  
<!--                <artifactId>aliyun-sdk-oss</artifactId>-->  
<!--                <version>3.10.2</version>-->  
<!--            </dependency>-->  
        </dependencies>

公共子模块:

    <dependencies>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
        </dependency>  
        <!--lombk-->  
        <dependency>  
            <groupId>org.projectlombok</groupId>  
            <artifactId>lombok</artifactId>  
            <optional>true</optional>  
        </dependency>  
        <!--junit-->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-test</artifactId>  
        </dependency>  
        <!--SpringSecurity启动器-->  
<!--        <dependency>-->  
<!--            <groupId>org.springframework.boot</groupId>-->  
<!--            <artifactId>spring-boot-starter-security</artifactId>-->  
<!--        </dependency>-->  
        <!--redis依赖-->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-data-redis</artifactId>  
        </dependency>  
        <!--fastjson依赖-->  
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>fastjson</artifactId>  
        </dependency>  
        <!--jwt依赖-->  
        <dependency>  
            <groupId>io.jsonwebtoken</groupId>  
            <artifactId>jjwt</artifactId>  
        </dependency>  
        <!--mybatisPlus依赖-->  
        <dependency>  
            <groupId>com.baomidou</groupId>  
            <artifactId>mybatis-plus-boot-starter</artifactId>  
        </dependency>  
        <!--mysql数据库驱动-->  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
        </dependency>  
        <!--AOP-->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-aop</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>easyexcel</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>io.springfox</groupId>  
            <artifactId>springfox-swagger2</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>io.springfox</groupId>  
            <artifactId>springfox-swagger-ui</artifactId>  
        </dependency>  
<!--        <dependency>-->  
<!--            <groupId>com.qiniu</groupId>-->  
<!--            <artifactId>qiniu-java-sdk</artifactId>-->  
<!--            <version>[7.7.0, 7.7.99]</version>-->  
<!--        </dependency>-->  
        <!--阿里云OSS-->  
<!--        <dependency>-->  
<!--            <groupId>com.aliyun.oss</groupId>-->  
<!--            <artifactId>aliyun-sdk-oss</artifactId>-->  
<!--        </dependency>-->  
    </dependencies>
3.项目配置

启动类:

@MapperScan("com.xyz66.mapper")  
@SpringBootApplication  
public class CsApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(CsApplication.class);  
    }  
}

启动类配置(我用了mybatis-plus):

server:  
  port:8080  
spring:  
  datasource:  
    url: jdbc:mysql://localhost:3306/sg_blog?characterEncoding=utf-8&serverTimezone=UTC  
    username: {{自己的数据库名字}} 
    password: {{自己的数据库密码}} 
    driver-class-name: com.mysql.cj.jdbc.Driver  
  servlet:  
    multipart:  
      max-file-size: 2MB  
      max-request-size: 5MB  
# mybatis-plus的配置  
mybatis-plus:  
  configuration:  
    # 日志  
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  
  global-config:  
    db-config:  
      logic-delete-field: delFlag  
      logic-delete-value: 1  
      logic-not-delete-value: 0  
      id-type: auto
4.依照SpringMVC框架构建项目

设计一张表,用代码生成器或自己写实现表现层(web)、业务层(service)、数据层(dao)-CURD的代码。
我这里用的SpringBoot简化+EasyCode生成代码。
在这里插入图片描述

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

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

相关文章

QT自定义信号,信号emit,信号参数注册

qt如何自定义信号 使用signals声明返回值是void在需要发送信号的地方使用 emit 信号名字(参数)进行发送 在需要链接的地方使用connect进行链接 ct进行链接

pytorch.nn.Conv1d详解

通读了从论文中找的代码&#xff0c;终于找到这个痛点了&#xff01; 以下详解nn.Conv1d方法 1 参数说明 in_channels(int) – 输入信号的通道。 out_channels(int) – 卷积产生的通道。 kernel_size(int or tuple) - 卷积核的尺寸&#xff0c;经测试后卷积核的大小应为in_cha…

阅读记录【PMLR2023】The Aggregation–Heterogeneity Trade-off in Federated Learning

The Aggregation–Heterogeneity Trade-off in Federated Learning Abstract 机器学习的传统观点认为&#xff0c;训练模型的数据越多&#xff0c;模型的性能就越好。因此&#xff0c;人们开发了多种联邦学习方法来聚合尽可能多的本地样本。与这种观点相反&#xff0c;本文表…

字母不重复的子串-第15届蓝桥第二次STEMA测评Scratch真题精选

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第158讲。 第15届蓝桥第2次STEMA测评已于2023年10月29日落下帷幕&#xff0c;编程题一共有6题&#xff0c;分别如下&am…

2023年【化工自动化控制仪表】找解析及化工自动化控制仪表试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 化工自动化控制仪表找解析参考答案及化工自动化控制仪表考试试题解析是安全生产模拟考试一点通题库老师及化工自动化控制仪表操作证已考过的学员汇总&#xff0c;相对有效帮助化工自动化控制仪表试题及解析学员顺利通…

openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性

文章目录 openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性125.1 前提条件125.2 背景信息125.3 操作步骤 openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性 125.1 前提条件 数据库正常运行&#xff0c;并且对防…

【网络基础实战之路】基于不同协议间使用重发布路由策略

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…

威胜WFET2000s电能量数据采集终端-WF102协议报文解读

客户又追加需求了 要求把电表接入他们自己的管理系统 小头菜查找相关资料&#xff0c;发现威胜2000s采集终端功能挺多&#xff0c;但是售价比普通透传DTU贵了 N 倍。 迫于成本压力&#xff0c;小头菜和厂里负责管理系统的领导沟通&#xff0c;看能不能用普通DTU代替。 后来发现…

ACM练习——第四天

ok&#xff0c;今天又是三节课的一天。 刚刚吃完饭的我一刻也不敢耽误&#xff0c;直接开干&#xff01;&#xff01;&#xff01; 这些题和力扣上的&#xff0c;为了练习数据结构的题是不一样的。 直接上嘴脸 题目 第一次放学 (nowcoder.com)来自牛客网 思路 先看他的输入…

JavaScript 语句、标识符、变量

语句 JavaScript程序的单位是行(line),也就是一行一行地执行。一般情况下&#xff0c;每一行就是一个语句 var num 10; 语句以分号结尾&#xff0c;一个分号就表示一个语句结束。 标识符 标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名标识符…

qt定时器的使用

在QWidget中进行声明

V10服务器安装virt-manage

kvm是什么 KVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用Linux自身的调度器进行管理&#xff0c;所以相对于Xen&#xff0c;其核心源码很少。目前KVM已成为学术界的主流VMM之一&#xff0c;它包含一个为处理器提供底层虚拟化 可加载…

【Linux网络】典型NAS存储方式:NFS网络共享存储服务

一、关于存储的分类 二、NFS的介绍 nfs的相关介绍&#xff1a; 1、原理 2、nfs的特点 3、nfs软件学习 4、共享配置文件的书写格式 关于权限&#xff0c;学习&#xff1a; 5、关于命令的学习&#xff1a; 三、实验操作 1、nfs默认共享权限&#xff08;服务端设置&#…

短视频账号矩阵系统源码/技术源码分享/技术搭建架构

短视频账号矩阵系统----技术源码分享/技术搭建架构 抖音seo又叫抖音搜索引擎&#xff0c;只要能做到布词&#xff0c;和过去的百度seo优化一样&#xff0c;布词&#xff0c;布关键词&#xff0c;当搜索栏搜索时可以搜索到该短视频。优化视频关键词&#xff0c;做好关键词的优化…

VSCode任务tasks.json中的问题匹配器problemMatcher和ProblemPattern的severity属性关系

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 在 VS Code 中&#xff0c;tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题&#xff08;错误、警告等&#xff09;。 ProblemMatcher的JSON对象和其下的子对象pattern…

Android 13.0 recovery出厂时清理中字体大小的修改

1.前言 在13.0的系统rom定制化开发中,在recovery模块也是系统中比较重要的模块,比如恢复出厂设置,recovery ota升级, 清理缓存等等,在一些1080p的设备,但是density只是240这样的设备,会在恢复出厂设置的时候,显示的字体有点小, 产品要求需要将正在清理的字体调大点,这…

【解刊】现投录用快!无版面费!CCF-B,2个月录用,2天见刊!

计算机类 • 好刊解读 今天小编带来Elsevier旗下计算机领域好刊的解读&#xff0c;如有相关领域作者有意向投稿&#xff0c;可作为重点关注&#xff01;后文有真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 Computers & Security ☑️出版社&#xff1a;Elsevier …

JUNIT使用和注意、以及断言的介绍使用、SpringBoot Test测试类的使用、maven配置使用junit详细介绍

参考文章&#xff1a; https://www.cnblogs.com/zhukaile/p/14514238.html&#xff0c;https://blog.csdn.net/qq_36448800/article/details/126438339 一、什么是单元测试 在平时的开发当中&#xff0c;一个项目往往包含了大量的方法&#xff0c;可能有成千上万个。如何去保…

mysql---squid代理服务器

squid代理服务器 nginx也可以代理&#xff1a;反向代理--------负载均衡 squid:正向代理服务器。例&#xff1a;vpn squid &#xff1a;正向代理&#xff0c;缓存加速&#xff0c;acl过滤控制 代理的工作机制 1、代替客户端向网站请求数据&#xff0c;不需要访问代理的IP地址…

哈夫曼编码详细证明步骤

关于哈夫曼编码&#xff0c;想必大家都很清楚&#xff0c;这里来讲解一下他的详细证明方法。代码的话就不给了网上一大堆&#xff0c;我再给也没什么意思&#xff0c;这里主要讲明白正确性的证明。我将采取两种方法进行证明&#xff0c;一种常规的方法&#xff0c;还有一种采取…