SpringMVC+Spring+mybatis+Redis项目从零开始--分布式项目结构搭建

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: SpringMVC+Spring+mybatis+Redis项目从零开始--分布式项目结构搭建http://www.bieryun.com/1524.html 一.SSM项目-分布式项目结构搭建 二.SSM项目-Spring mybatis mysql配置实现 三.SSM项目-redis缓存策略和配置实现 四.SSM项目-Springmvc配置实现 一、SSM框架web项目从零开始--分布式项目结构搭建 /** 本文为博主原创文章,如转载请附链接。

SpringMVC+Spring+mybatis+Redis项目从零开始--分布式项目结构搭建

一.SSM项目-分布式项目结构搭建

二.SSM项目-Spring mybatis mysql配置实现
三.SSM项目-redis缓存策略和配置实现
四.SSM项目-Springmvc配置实现

一、SSM框架web项目从零开始--分布式项目结构搭建

/**

本文为博主原创文章,如转载请附链接。

**/

一.  SSM项目-目录框架搭建实现

1.    序言

做SSM项目有一段时间,从来没有系统性的对整个项目结构做一次总结,临近年关,趁着有时间,想把整个SSM项目框架的相关内容梳理一下,同时也弥补自己不足,可能有些考题考虑不周,请大家多多谅解。

本系列文章,会涉及到Springmvc,spring,mybatis,maven ,mysql,redis等框架知识,如果自身对相关知识不了解的同学,请到对应的官网进行自我充电。同时,本系列文章只是做SSM项目的搭建实例,有些问题不会深入。如果对您有帮助,请点赞吧!

2.    SSM项目从零开始文章目录

本系列文章将分四章进行,具体文章目录如下

1)   SSM项目-maven项目结构搭建

2)   SSM项目-Spring mybatis mysql配置实现

3)   SSM项目-redis缓存策略和配置实现

4)   SSM项目-Springmvc配置实现

3.    SSM项目-maven项目结构搭建

3.1  SSM项目结构

3.1.1     传统SSM项目结构

优点:所有项目代码统一分布在一个文件,易于管理;

缺点:所有项目代码统一分布在一起,各模块耦合度大,不利于代码分布式管理,不利于项目分布式部署,maven需要每个单独编译处理。

3.1.2     分布式SSM项目结构

缺点:代码分散,代码量加大;

优点:代码见耦合度降低,利于代码管理,项目见通过pom依赖进行相关调用依赖,部署时通过jar实现项目间依赖,同时利于项目分布式部署。

3.2  SSM项目结构实现

本节将实现3.1.2中分布式SSM项目结构,整体项目结构如下

3.2.1     ssm-parent

ssm项目maven父工程,pom中可以配置整个web应用相关的架包依赖,插件,jdk版本等
3.2.1.1  Maven project新建

1)   新建maven project项目;

2)   选择 Create a simple project…

3)   设置项目保存目录Location,如果选择默认,可能会出现项目目录文件混乱,不易管理。

3.2.1.2  Configure project

1)   Packaging需要选择pom;

3.2.1.3  ssm-parent项目结构

3.2.2     ssm-commons

ssm项目中公共组件包,以便其他工程调用。
3.2.2.1  Maven project

3.2.2.2  Configure project

1)   Packaging选择jar

2)   ParentProject输入ssm-parent相关信息

3.2.2.3  ssm-commons项目结构

3.2.3     ssm-manager

ssm项目中web应用实现工程
3.2.3.1  Maven project

3.2.3.2  Configure project

1)   Packaging选择pom;

2)   ParentProject输入ssm-parent

3.2.3.3  ssm-manager项目结构

3.2.4     ssm-manager-pojo

pojo存放项目相关实体

3.2.4.1  Maven module

3.2.4.2  Configure project

1)   Packaging选择jar

3.2.5     ssm-manager-service和ssm-manager-mapper

ssm-manager-mapper: dao层,主要与数据交互;

ssm-manager-service: service层,主要进行业务逻辑处理;

ssm-manager-service,ssm-manager-mapper的项目工程类似

ssm-manager-pojo

3.2.6     ssm-manager-controller

ssm-manager-controller:与前端交互控制,同时也包含前端代码;

3.2.6.1  Maven module

类似ssm-manager-pojo创建module;

3.2.6.2  Configure project

1)   Packaging选择war;

3.2.6.3  ssm-manager-controller项目结构

 

4.    SSM项目-项目结构总结

通过上面的步骤,我们SSM项目整体项目结构已搭建完成,下一章我们将引入Spring,mybatis实现相关配置。

 

二.  SSM项目-Spring mybatis mysql配置实现

三.  SSM项目-redis缓存策略和配置实现

四.  SSM项目-Springmvc配置实现

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
5月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
137 2
基于Redis的高可用分布式锁——RedLock
|
30天前
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
98 5
|
2月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
70 8
|
2月前
|
NoSQL Redis
Redis分布式锁如何实现 ?
Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
61 16
|
2月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
45 5
|
3月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
76 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
3月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
621 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
3月前
|
NoSQL Redis 数据库
计数器 分布式锁 redis实现
【10月更文挑战第5天】
55 1
|
3月前
|
NoSQL 算法 关系型数据库
Redis分布式锁
【10月更文挑战第1天】分布式锁用于在多进程环境中保护共享资源,防止并发冲突。通常借助外部系统如Redis或Zookeeper实现。通过`SETNX`命令加锁,并设置过期时间防止死锁。为避免误删他人锁,加锁时附带唯一标识,解锁前验证。面对锁提前过期的问题,可使用守护线程自动续期。在Redis集群中,需考虑主从同步延迟导致的锁丢失问题,Redlock算法可提高锁的可靠性。
88 4