种子项目详解

引言

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

猜你喜欢

转载自blog.csdn.net/weixin_44950174/article/details/105466503