种子项目详解

引言

在上一篇文章简单讲解了种子项目搭建,但是项目搭建起来是为了方便我们后续开发的。因此了解整个项目的架构,以及各个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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lenos(p为spring boot版本扩展名)一款快速开发模块化脚手架,采用spring boot 2.0.1+spring+SpringMvc+mybatis+shiro+swagger+ehcache+quartz+freemarker+layui技术开发;实现功能有系统模块:菜单管理、用户管理、角色管理,系统监控:系统日志、接口api、sql监控。本项目会一直维护并集成新的技术,给您的开发节约时间成本,本项目拥有非boot版本。 功能说明: 项目目前拥有 1、系统管理:菜单管理、用户管理、角色管理 2、统一查询 pagehelper分页,查询调用BaseServiceImpl show model set数据,传入T,配合xml编写,即可自定义查询。 3、采用shiro技术,可配置化权限管理,精确到按钮(也可以是某一元素)功能分配 4、登录次数校验,超出定义次数后冻结一段时间账号 5、系统监控:系统日志、接口api、系统监控、可配置定时任务 6、前端可配置化定时任务。 7、采用swagger可视化出实时方法格式以及数据属性,采用阿里druid监控sql。 8、工作流程管理:完全实现模块化,无侵入。监听用户角色信息到引擎数据表中 9、流程管理:动态给发布流程分配角色,无需手动写死,灵活可变 10、模块列表:新建、编辑、发布流程,前端实现完全可配置化建立流程图 11、请假流程:提供一个请假示例,让您很快熟悉流程 12、待办任务:个人需要办理的流程任务 13、如果不喜欢工作流,可以直接删除 len-activiti模块 并在len-web/pom.xml、父 pom.xml 删除依赖以及模块,删除application.java 中对activiti的扫描即可完全删除工作流模块。 技术: jdk:1.8 核心框架:spring boot 2.1.9.RELEASE 安全框架:Apache Shiro 工作流引擎:Activiti 数据库连接池:druid 视图框架:spring mvc 持久层框架:MyBatis 模板引擎:freemarker 缓存:redis、ehcache 定时:quartz 2.3.0 前端页面:layui 博客前端:vue、iview ps: lenos承诺永久开源,全部免费,无任何收费地方 如果您喜欢lenos,可以clone下来使用,您的star将是本人前进的动力,本项目无丝毫保留开源,如果您有技术疑问,可以加群交流。 如果lenos对您有一点帮助,您可以点个star,就是对作者最大的支持了。 lenos脚手架会一直更新下去,我们的征途是星辰大海 登录账号:admin 密码:123456
修改application-dev.yml中的数据库配置环境 * 继承通用接口直接使用,或根据业务在基础代码上扩展 * 代码生成:在CodeGenerator的main方法中修改需要生成的表名,运行即可 ## 代码结构 ```bash ├── README.md ├── pom.xml ├── springboot-seedproject.iml ├── src │   ├── main │   │   ├── java │   │   │   └── pers │   │   │   └── hong │   │   │   └── project │ │ │ ├── SpringbootSeedprojectApplication.java 启动类 │ │ │ ├── common │ │ │ │ ├── Constants.java 常量 │ │ │ │ ├── Result.java 结果集 │ │ │ │ ├── ResultGenerator.java 响应结果生成工具 │ │ │ │ └── ServiceException.java 业务异常 │ │ │ ├── config │ │ │ │ ├── MybatisConfig.java Mybatis配置 │ │ │ │ └── WebMvcConfig.java MVC配置 │ │ │ ├── core │ │ │ │ ├── AbstractService.java service实现 │ │ │ │ ├── Mapper.java 通用mapper │ │ │ │ └── Service.java 通用service │ │ │ └── generator │ │ │ └── CodeGenerator.java 代码生成器 │ │ └── resources │ │ ├── application-dev.yml 开发环境 │ │ ├── application-pro.yml 生产环境 │ │ ├── application-test.yml 测试环境 │ │ ├── application.yml 配置文件 │ │ ├── banner.txt banner │ │ ├── mapper │ │ └── template ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值