种子项目详解

article/2025/8/30 4:38:02

引言

在上一篇文章简单讲解了种子项目搭建,但是项目搭建起来是为了方便我们后续开发的。因此了解整个项目的架构,以及各个Maven模块是如何各司其职、相互依赖,是至关重要的。

这里分成两块介绍

  • lenosp自带的内容
  • 新增扩展的内容

lenosp自带的内容

首先我们看看lenosp脚手架自带的Maven模块有哪些

img

  • len-admin:这是博客管理员的模块,这里用不上,不管
  • len-blog:这是博客模块,同上
  • len-core
  • len-sys
  • len-web

下面主要讲讲len-corelen-syslen-web这三个模块。

len-core

何谓core?core在英文中的意思是核心、要点,而在该项目中,len-core也是整个项目的核心。我们先来看看文件结构

img

可以看到,这里有四个大包baseexceptionfreemarkerredis,以及一个util工具包,还有一个validator参数校验分组接口包。

base包

base即基础,也就是抽取通用部分封装成的基础类,让其他类去继承之,减少重复代码。这里有通用Mapper的配置(BaseMapper),以及service层通用的方法(BaseService),而BaseController中则有权限异常处理、时间格式化和ajax请求的判断。

至于下面的三个Currentxxx则是后台管理系统的菜单、角色、用户实体类。剩下两个不知道…

exception包

该包下是自定义的一些异常,以及统一异常处理类GlobalExceptionHandler

freemarker包

该包下是Freemarker模板引擎的一些配置。

redis包

redis的一些常用方法封装,例如get\set\del

util包

img

这里有很多工具类,其中的功能大都可以顾名思义。这里就不详细展开讲了。

validator

img

校验分组接口定义。有时候一个类对于不同的接口需要定义多种不同的校验方式,例如add不需要id,而update需要id,这里可以使用接口区别校验。

pom.xml

每个Maven模块都会带的xml配置文件,用于引入依赖、管理多模块依赖。以下就不再叙述。

len-sys

sys是系统的缩写。这里也就是系统运行所依赖的类集合。文件结构如下:

img

学过Javaweb三层架构的同学应该很清楚了,controller、service、mapper即分别对应三层。而entity是实体类。下面再来看看core

core包

img

  • annotation

    注解定义,这里是日志注解的定义。用于接口上,采集日志。

  • BootListener

    监听器,用于监听定时任务执行情况、bean初始化情况以及Servlet初始化情况。

  • filter

    过滤器,包括后台管理系统登录所需的验证码拦截、校验用户是否已授权

  • quartz

    定时任务定义、配置,具体不说。

  • shiro

    shiro安全框架登录认证LoginRealm定义,以及Principal用户主体、RetryLimitCredentialsMatcher验证器,限制尝试登陆次数,防止暴力破解

resources

看完core我们继续看resources,学过SpringBoot的同学都知道这是放资源文件的地方。

img

  • ftl

    该包是存放ftl后缀的模块页面的文件夹

  • mapper

    存放mapper.xml文件的文件夹

  • plugin

    存放前端使用的框架的文件夹,例如bookstraplayui

len-web

该模块是也就是我们所说的controller层的一些配置以及application.yml的配置。

img

挑几个懂的出来说说

  • CorsConfig:配置跨域
  • pageHelperConfig:此方案可替代 application.yml中 pagehelper配置
  • SwaggerConfig:Swagger接口文档配置
  • WebMavConfig:拦截器资源放行以及图片上传路径定义
  • TransactionalConfig:事务配置
  • ShiroConfig:Shiro安全框架配置
  • DruidConfig:数据源Druid配置

差不多就这些吧。可以自己点进源码详细看看

自己扩展的模块

我们使用lenosp脚手架当然是为了方便开发,而我们开发可以自己新开模块再开发,而不要和脚手架自带的模块混杂在一起,显得混乱。

img

这五个模块其实很好理解了,就是三层架构拆分成了Maven多模块开发,不用多说了吧。

后记

最后,再讲讲几个注意的点。

  • 因为用到了Maven多模块开发,所以各模块的依赖关系要理清楚。否则编译运行可能都不能通过
  • 启动在len-web中的Application启动类的主方法中
  • 数据库等yml配置也在len-web模块

至此,我们可以安心开发了0.0


http://chatgpt.dhexx.cn/article/BhY6x98C.shtml

相关文章

【Abp VNext】实战入门(九):DbMigrator 自定义项目所需种子数据

前言: 项目开发过程中难免会涉及到一些业务相关的基础数据,我们称之为种子数据,主要为了方便测试功能或者展示效果; 常规做法是手动到数据库表创建数据,但是随着表结构更改或者数据清空后,又要重新录入基…

区块链模块化的大胆尝试,解读公链Celestia

作为以链游为主的社区,暴躁兔也会时常关注加密行业的其他赛道和方向。对于目前市场而言,公链的机会与红利仍然存在,且相对而言,技术创新较多,同时资本也比较喜欢这样的赛道。今天为大家讲解的是Cosmos生态的项目Celest…

scrapy_redis种子优化

前言: 继《scrapy_redis去重优化(已有7亿条数据),附Demo福利》优化完去重之后,Redis的内存消耗降了许多,然而还不满足。这次对scrapy_redis的种子队列作了一些优化(严格来说并不能用上“优化”…

总结一下Python的模块加载解析

正式的Python专栏第16篇,同学站住,别错过这个从0开始的文章! 学委之前分享了很多代码,也发布了几个库。 新手可以从两篇基础文章入手学习,积累了一些代码,可以考虑做成一个个模块,包装代码有利…

C++ 函数(模块化编程)

目录 函数定义 函数 函数定义的语法形式 函数调用 调用函数需要先声明函数原型 函数调用形式 嵌套调用 例3-1编写一个求x的n次方的函数 例3-2 数制转换 源代码: 例3-3 编写程序求π的值 arctan函数 主程序 例3-4 寻找并输出11~999之间的数M&#xf…

单片机常开常闭检测

单片机检测常开常闭点(干接点信号)的方法:检测干接点的闭合和断开,从而单片机实施一定的操作,它具有两根线,具体步骤:1、引出单片机一个IO口线,连接干接点一端。2、干接点另一端通过…

干海星怎么吃做法 干海星的功效与作用有哪些

干海星是生活中并不常见的一种海鲜类食材,在很多人眼中干海星都是一种中药材,其实它也可以当做一种菜品来食用,那么干海星应该怎么吃呢?接下来我就把自己总结的干海星吃法大全写出来分享给大家。 干海星怎么吃 干海星的功效与作用…

大前端干货资料

JavaScript 文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference ES6 入门教程:https://es6.ruanyifeng.com/ Vue 官网:https://cn.vuejs.org router 官网:https://router.vuejs.org/zh UI框架 Ele…

干簧管(磁开关)

其实干簧管的工作原理并不复杂 干簧管的特点: 干簧管是干式舌簧管的简称,是一种有触点的无源电子开关元件,具有结构简单,体积小便于控制等优点,其外壳一般是一根密封的玻璃管,管中装有两个铁质的弹性簧片…

苹果手机位置共享后没开启定位服务器,iPhone默认开启但无卵用的设置开着干嘛?难怪手机这么耗电...

原标题:iPhone默认开启但无卵用的设置开着干嘛?难怪手机这么耗电 如果你的苹果手机开启了定位功能,那么在iPhone【设置】-【隐私】-【定位服务】-系统服务】,点击进入后有很多项开关,而很多都是在打开定位服务后默认开…

adams打不开提示msc license_adams安装后打不开

虽然要支持正版……但是 安装后打不开,借鉴了adams2017安装教程后台留言 图片发自简书App 1.首先我这么做是因为其实在安装过程中就有一次没找到路径 。所以该方法仅供参考。 图片发自简书App 此时我直接在“此电脑”内搜索“MSC.Software”了 图片发自简书App 耐心…

使用Arduino开发板连接干簧管(Reed Switch)的方法

topic 1.干簧管(Reed Switch)干簧管的特点:模块使用说明:干簧管有两种常见的类型:干簧管常见的应用需要的组件代码 1.干簧管(Reed Switch) 干簧管,又称磁力开关或磁簧开关&#xff0…

查看电脑使用日志------电脑干了些什么,别人是否动了你的电脑

** 现在我们都有了电脑,有时候短暂的离开可能会有人偷偷的查看你的电脑,有意无意的,总是会感觉心里不是很踏实,那么怎么知道自己的电脑有没有被别人偷偷的查看呢,下面我们通过一些列操作查看电脑是否被别人动过&#x…

高版本envi打不开Landsat8 C2L2数据解决教程

引申部分不写,直接开干 首先找到你的Landsat8 C2L2数据 进入后将首行GROUP LANDSAT_METADATA_FILE改为GROUP L1_METADATA_FILE 编辑—查找—GROUP LEVEL1_PROCESSING_RECORD,查找下一处可得该区域总和 将 GROUP LEVEL1_PROCESSING_RECORD 到 END_…

【错误记录】Melodyne 报错 ( 无法打开音频文件 )

文章目录 一、报错信息二、修改音源格式三、继续使用 Melodyne 打开 一、报错信息 打开一个 48000Hz , 立体声音源 , 采样位数 32 位的采样 , 无法打开 , 报下面的错误 ; 这是用 Bandicam 录制的音频 , 感觉有点问题 , 之后使用 Au 录制音频 ; 二、修改音源格式 在 Adobe Audit…

带你了解测开

测开——测试开发工程师 测试开发工程师 (Software Development Engineer in Test,简称SDET)是指那些既可以称作是开发人员,同时也负责软件开发阶段和测试周期的测试工作的技术人员。一个专业的SDET更关注软件产品的可测性,稳健性和性能。他…

开干,开源 k8s 负载均衡器大比拼

原文链接:https://ewhisper.cn/posts/29610/ 🧠 译者声明: 请注意文章发布时间,时间比较久远,部分观点可能已经过时。原文作者为 PureLB 的利益相关者,所以本文可能不尽客观。 词汇表 英文中文备注LoadBala…

开干!Elasticsearch官方文档离线访问实操指南

Elasticsearch 最少必要知识实战教程直播回放 1、开发不能联网怎么访问Elasticsearch文档? 这是最近被频繁问到的问题。直接上个图: 不能让 Elasticsearch 文档限制了你我的学习热情! 2、直接开干 步骤1:访问:https://…

开干!

阅读本文大概需要 2.6 分钟。 很多人知道,我自由了,但很多人会误以为自由就是在家混吃等死,那人生得多没意思,我也有自己的事要做的,只是会自主安排时间,自主决策事情而已,下周开始,…

python中读写Protobuf总结

Protobuf是谷歌开源的协议框架,以高效传输著称并且支持多种语言。工作中也用到了,在此做个总结。 Protobuf运行原理 下面一张图可以说明: Python中使用Protobuf 2.1安装protoc程序 protoc --version 我安装的是3.6.1版本 2.2定义协议 syntax …