Guns第三节 项目介绍

Guns第三节 项目介绍

guns-admin是Guns管理系统

guns-core是其他模块提炼出来的公共的代码

guns-parent是maven的的父模块,父模块的作用就是管理其它的子模块,可以把我们依赖都提到parent,并且对我们依赖的版本做一个统一的维护。

当我们的其他模块引用pom.xml的时候,是不带版本号的

Guns第三节 项目介绍

这就是parent模块的作用,他可以统一维护依赖的版本,

Guns第三节 项目介绍

gun-rest本意是些一个app 服务端,提供rest API服务,权限和md5加密,


包结构的介绍

common包 包含其他包所公用的一些东西,比如annotation,constant(cache,dictmap,factory常量的生产工厂,state状态的一些枚举,还有常量类),exception,persistence(mapping,model实体类)

Guns第三节 项目介绍

config包里面都是admin这个项目的配置,我们的配置都是基于java bean 的方式,大家可以看到,我们里面是没有spring的xml的配置的,我们都是@bean这样的注解写到这个java类里面了,所以说这个是配置文件

Guns第三节 项目介绍

上图等同于<bean><bean>方式的配置

properties都是对应application.yml,   对应的属性映射到我们的java类里面,通过注解这样的方式,java类里面有个核心的注解@ConfigurationProperties

Guns第三节 项目介绍

他读取了BEETLCONF_PREFIX为前缀的一些配置,并且spring加载,项目启动的时候,会读取这些配置并且注入到他相应的变量里面,举个例子,比如说 项目启动的时候会读取delimiterStatementStart这个变量,从哪儿读取的呢?从配置文件里面以beetl开头的page

Guns第三节 项目介绍

从start这儿读取出来,并且放到这个变量delimiterStatementStart里面。

其他的变量也是一样的,这样呢我们在其他的配置里面或者其他的代码里面,调用application.yml里面的配置的时候就可以通过properties来调用,非常的方便,

然后接下来的这两个配置也是一样的

Guns第三节 项目介绍

web就是我们web相关的配置,比如说我们的beetl的配置

core目录里面是Gun项目运行的一些核心机制,比如说GUNS运用到AOP:

异常拦截器,日志的拦截器,权限的检查

如何把用户通过角色,然后登陆进去看到不同的效果,这个就是permission aop,beetl里面就是beetl相关的一些工具类和beetle的配置,datascope是数据范围,这里面有一个数据范围的类和一个数据范围的拦截器,什么是数据范围呢?就是相同角色的用户,他们部门相同,那么他们看到的数据可能不一样。intercept,一个sessionIntercept和一个sessionTimeoutIntercept,这是两个不同的拦截器,静态调用session的意思是我们可以在我们的业务代码里面通过HttpSessionHolder.get()得到httpSession这个对象,方便我们在所有地方,任何代码里面方便的调用httpSession,sessionTimeoutIntercept就是验证session超时的拦截器,他会验证当前用户是否长时间没有操作,是否登陆超时了.configListenser就是项目启动的时候有一个监听,启动之后进行操作,比如说设置这一些变量

Guns第三节 项目介绍

log就是业务记录日志的核心和机制,shiro就是权限管理,template是我们的代码生成器,util是工具类,我们可以看到在core模块里面也有util,core里的util是其他模块公用的工具类,admin里的util只在admin里面适用

Guns第三节 项目介绍

modular包里面是我们的主要的业务代码,这个biz.service是一个测试代码,测试多数据源时候的一个测试代码,system是我们整个系统的核心的业务代码都在这里面,大家可以看到

Guns第三节 项目介绍

factory主要是创建对象的工厂,transfer dto相当于transfer bean,他是我们的数据传输对象。

Warpper这个包的作用就是Guns有个独特的controller层,map+warpper的返回方式。

GunsApplication类是项目核心的启动类。

GunsServletInitializer类当我们打成war包的时候,Tomcat启动的时候,他就是一个核心的入口,我们的项目里面是没有web.xml的,因为Guns是Servlet3.0,支持不带web.xml的启动方式,GunsServletInitializer类就相当于是替代web.xml的启动方式,generater是生成实体的生成器,MyBatsiPlusGenerator是我们mybatisPlus生成器。

resources里面gunsTemplate,guns的代码生成器模板,都是beetl模板引擎的模板。

META-INF里面有一个properties配置,这个配置是beetl相关的配置,这个配置在什么时候生效呢,他是在开启spring的devtools的时候生效,开启devtools的时候我们需要把Guns第三节 项目介绍

配置一下,要不然beetl就会启动报错。

applicaton.yml分很多模块

profile就是在不同的运行环境运行不同的配置。用的时候我们只需要改一下开关spring.profiles.active+名称,**哪个配置,打包之后就是哪个配置

ehcahe.xml就是缓存的配置

logback-spring.xml就是日志的配置

webapp里面就是我们页面相关的东西,static里面放的都是静态页面,web-inf.view里面放的是页面

common里面有封装了常用技术的js

Guns第三节 项目介绍

Guns第三节 项目介绍

Feng.js封装了js里面常用的方法 

Guns第三节 项目介绍

tags标签,就是我们自定义的标签,

Guns第三节 项目介绍

我们代码里面有#开头的标签,其实他就是我们封装的自定义的标签,这个标签就是对html代码的封装

Guns第三节 项目介绍

一大串这样的html代码。

_container.html是html的容器,在写业务代码的时候,会有Guns第三节 项目介绍,它其实把这个页面Guns第三节 项目介绍省略了很多代码,省略container外面的代码

Guns第三节 项目介绍

beetl在解析的时候就会找到Guns第三节 项目介绍这个变量,把layoutContent替换成具体的代码如下

Guns第三节 项目介绍

Guns第三节 项目介绍也是对html的封装,主要体现在index.html里面,index页面就是我们的主页,主页的html由这些外部的框架,还有内部的这三个东西组成Guns第三节 项目介绍Guns第三节 项目介绍就相当于把_tab.html里面的html原样不动的放在这里,这样写的好处就是修改的时候非常方便

Guns第三节 项目介绍system里面就是我们所有业务界面用到的html和beetl模板引擎。

Guns第三节 项目介绍

Guns第三节 项目介绍全局的拦截器

Guns第三节 项目介绍其他模块用到的pozo对象

Guns第三节 项目介绍封装了一下方便controller调用的一些东西

Guns第三节 项目介绍定义了 404,session超时的一些跳转

Guns第三节 项目介绍错误页面默认跳转Guns第三节 项目介绍,视图解析器就会渲染Guns第三节 项目介绍

Guns第三节 项目介绍

跳转到404页面

Guns第三节 项目介绍就是返回前台的提示,提示里面包含code和massage,code就是错误码,message是提示信息

Guns第三节 项目介绍操作缓存的工具类

Guns第三节 项目介绍有一个fastjson的配置类

Guns第三节 项目介绍是一个简单的枚举

Guns第三节 项目介绍是一个方便操作数据库的工具类

Guns第三节 项目介绍异常的封装Guns第三节 项目介绍

Guns第三节 项目介绍把异常放到一个枚举类里面,这样我们好维护

Guns第三节 项目介绍多数据源的配置

Guns第三节 项目介绍是对节点的封装

Guns第三节 项目介绍分页用到的,bootStrap Table插件,

插件需要什么参数呢,PageBT封装的参数Guns第三节 项目介绍

Guns第三节 项目介绍是生成二维码的工具类

Guns第三节 项目介绍这个项目里面开源的工具类

Guns第三节 项目介绍防止xss攻击的机制


下面对数据库的设计进行介绍

Guns第三节 项目介绍把当前部门的所有的父级都列举出来,为了方便我们查找某一个部门的所有子部门,比如说我们查找总公司的子部门

Guns第三节 项目介绍

乐观锁保留插件

Guns第三节 项目介绍


md5,密码盐是对原密码进行一个混淆作用

相关文章:

  • 2021-09-13
  • 2021-10-28
  • 2022-02-04
  • 2021-04-30
  • 2021-07-10
  • 2021-09-26
  • 2021-06-08
  • 2022-12-23
猜你喜欢
  • 2021-12-14
  • 2021-08-12
  • 2021-12-01
  • 2021-12-14
  • 2022-12-23
  • 2021-08-09
  • 2021-12-13
相关资源
相似解决方案