当前位置: 首页 > news >正文

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

文章目录

        • 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生成代码。
在这里插入图片描述

相关文章:

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

文章目录 1.引入概念2.导入依赖3.项目配置4.依照SpringMVC框架构建项目 1.引入概念 例如某一个XX系统&#xff0c;该系统存在前台页面&#xff08;给用户直观看或使用&#xff09;&#xff0c;和后台页面&#xff08;给管理人员调整数据和权限&#xff09;。 这二个页面都通过…...

Angular 路由无缝导航的实现与应用(六)

Angular 是一种流行的前端开发框架&#xff0c;它提供了强大的路由功能&#xff0c;用于构建单页应用程序&#xff08;SPA&#xff09;。本文将介绍 Angular 路由的基本概念和使用方法&#xff0c;并通过具体的代码实例演示如何利用路由实现无缝的页面导航。 什么是 Angular 路…...

quickapp_快应用_tabBar

tabBar 配置项中配置tabBar(版本兼容)使用tabs组件配置tabBar语法示例问题-切换tab没有反应问题-数据渲染问题解决优化 问题-tab的动态配置 第三方组件tabbar 一般首页都会显示几个tab用于进行页面切换&#xff0c;以下是几种tab配置方式。 配置项中配置tabBar(版本兼容) 在m…...

PCL_点云分割_基于法线微分分割

一、概述 PCL_点云分割_基于法线微分分割_点云法向量微分-CSDN博客 利用不同的半径&#xff08;大的半径、小半径&#xff09;来计算同一个点的法向量差值P。判断P的范围&#xff0c;从而进行分割。 看图理解&#xff1a; 二、计算流程 1、计算P点小半径的法向量Ns 2、计…...

计算机毕业论文内容参考|基于深度学习的交通标识智能识别系统的设计与维护

文章目录 导文摘要前言绪论1课题背景2国内外现状与趋势3课题内容相关技术与方法介绍系统分析总结与展望导文 基于深度学习的交通标识智能识别系统是一种利用深度学习模型对交通标识进行识别和解析的系统。它可以帮助驾驶员更好地理解交通规则和安全提示,同时也可以提高道路交通…...

SELinux零知识学习十六、SELinux策略语言之类型强制(1)

接前一篇文章&#xff1a;SELinux零知识学习十五、SELinux策略语言之客体类别和许可&#xff08;9&#xff09; 二、SELinux策略语言之类型强制 SELinux策略大部分内容都是由多条类型强制规则构成的&#xff0c;这些规则控制被允许的使用权&#xff0c;大多数默认转换标志、审…...

轻量封装WebGPU渲染系统示例<34>-数据驱动之Json构建场景

场景和数据之间的互通&#xff1a; 场景数据化或者数据化场景&#xff0c;是当前的主流场景数据构成方式。方便传输方便交换甚至是交互。 内置数据互通机制更有利于用户在各种应用场合下实现具体的3D相关的应用需求。用户只需要关心标准的或者约定好的数据定义及操作方式就能方…...

全局异常拦截和Spring Security认证异常的拦截的顺序

&#x1f4d1;前言 本文主要全局异常拦截和Spring Security认证异常的顺序&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…...

Hive Lateral View explode列为空时导致数据异常丢失

一、问题描述 日常工作中我们经常会遇到一些非结构化数据&#xff0c;因此常常会将Lateral View 结合explode使用&#xff0c;达到将非结构化数据转化成结构化数据的目的&#xff0c;但是该方法对应explode的内容是有非null限制的&#xff0c;否则就有可能造成数据缺失。 SE…...

音频类型转换工具-可执行文件exe/dmg制作

朋友车载音乐需要MP3格式&#xff0c;想要个批量转换工具 准备工作 brew install ffmpeg --HEAD或者官网下载安装ffmpeg并配置环境conda install ffmpeg 或者pip install ffmpeg-python 音频类型转换程序.py文件 exe文件在windows下打包&#xff0c;dmg在macos下打包&#…...

【Proteus仿真】【51单片机】公交车报站系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。 主要功能&#xff1a; 系统运行后&…...

C++--STL总结

参考教程&#xff1a;黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 软件界一直希望建立一种可重复利用的东西&#xff0c;C的面向对象和泛型编程思想&#xff0c;目的就是复用性的提升。 大多情况下&#xff0c;数据结构和算法都未能有一套标准,…...

Python----图像的手绘效果

图像的数组表示 图像是有规则的二维数据&#xff0c;可以用numpy 库将图像转换成数组对象 : from PIL import Image import numpy as np imnp.array(Image.open("D://np.jpg")) print(im.shape,im.dtype)结果&#xff1a; 图像转换对应的ndarray 类型是3 维数据&am…...

Android13集成paho.mqtt.android启动异常

项目中原依赖是&#xff1a; implementation(org.eclipse.paho:org.eclipse.paho.android.service:1.1.1) {exclude module: support-v4transitive true } implementation org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5在Android10系统运行正常&#xff0c;能够连接…...

STM框架之按键扫描新思路

STM框架之按键扫描新思路 引入代码展示思路分析 我们学习了定时器实现毫秒级/秒级任务框架&#xff0c;这期我们基于任务框架学习按键扫描新思路。 引入 在按键扫描的过程中&#xff0c;最重要的一步就是按键消抖&#xff0c;解决的方法最简单粗暴的就是先扫描一次按键状态&am…...

Linux服务器挂载另一台服务器的文件夹(mount)

我们实际应用中&#xff0c;会常遇到多个Linux服务器之间需要频繁共享文件&#xff0c;或者是一台服务器需要使用另一台服务器的闲置磁盘空间。最方便的方法就是挂载另一台linux文件夹&#xff08;文件服务器&#xff09;&#xff0c;通俗理解为&#xff1a;当前服务器远程连接…...

剑指offer --- 用两个栈实现队列的先进先出特性

目录 前言 一、读懂题目 二、思路分析 三、代码呈现 总结 前言 当我们需要实现队列的先进先出特性时&#xff0c;可以使用栈来模拟队列的行为。本文将介绍如何使用两个栈来实现队列&#xff0c;并给出具体的思路和代码实现。 一、读懂题目 题目&#xff1a;用两个栈实现一…...

流媒体协议

◆ RTP(Real-time Transport Protocol)&#xff0c;实时传输协议。 ◆ RTCP(Real-time Transport Control Protocol)&#xff0c;实时传输控制协议。 ◆ RTSP(Real Time Streaming Protocol)&#xff0c;实时流协议。 ◆ RTMP(Real Time Messaging Protocol)&#xff0c;实时…...

ClickHouse的分片和副本

1.副本 副本的目的主要是保障数据的高可用性&#xff0c;即使一台ClickHouse节点宕机&#xff0c;那么也可以从其他服务器获得相同的数据。 Data Replication | ClickHouse Docs 1.1 副本写入流程 1.2 配置步骤 &#xff08;1&#xff09;启动zookeeper集群 &#xff08;2&…...

C语言编程陷阱(五)

陷阱21:不要使用逗号运算符代替分号 C语言中,我们可以使用分号来结束一个语句,比如a = b;,这样可以让编译器知道语句的边界,以及执行的顺序。但是,如果我们想要在一个语句中执行多个表达式,就可以使用逗号运算符,比如a = (b = c, c + 1);,这样可以让编译器按照从左到右…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代&#xff0c;传统本地存储因容量限制、管理复杂等问题&#xff0c;已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性&#xff0c;成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理&#xff0c;云存储正重塑数据存储与…...