-
Notifications
You must be signed in to change notification settings - Fork 19
项目技术文档说明
以hjt-platform-auth配置文件为例
knife4j:
enable: true
production: false
关闭 只需要改为true即可
摘要:@Component,@Aspect,以供Spring IoC容器进行管理。Spring的IoC容器读取到Aspect注解时,会自动查找带有@Aspect的Bean,然后根据@AfterReturning、@AfterThrowing等拦截器注解把AOP注入到特定的Bean中
本项目中AOP用到的注解:
- Aspect:切面,类似于Java中的类声明,是对系统中横跨多个类的关注点进行模块化封装
- Joinpoint:连接点,程序执行过程中的一个“点”,例如:方法的执行或异常的处理。在Spring AOP中,一个连接点总是代表一个方法的执行。
- Pointcut:切入点,即一组连接点的集合;
- @AfterReturning: 当方法正常返回时会被此拦截器拦截。(参数说明 jsonResoult必须和形参的参数名字一样)
- @AfterThrowing: 当方法运行过程中有异常抛出时,会被此拦截器拦截。
额外补充注解:
- Advice:通知,定义了将会织入到 Joinpoint 的具体逻辑,通过@Before、@After、@Around等注解来区别在JointPoint之前、之后等位置执行代码
- Weaving:织入,织入指的是将Advice连接到Pointcut指定的Joinpoint处的过程
- Interceptor:拦截器,是一种实现Advice(通知)的方式;
- Target:目标对象,即符合切入点所指定的条件被织入Advice的对象。
1.先定义切面Aspect---->2.定义切点Pointcut(配的是Log注解的路径)---->3 AfterReturning(配切点的值 logPointCut和jsonResult(返回值))----->4.handleLog()执行具体的业务逻辑记录(ip,操作人,方法名称等等)
如果是接口报异常 4那里。
的分类 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去
2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
4.provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
5.system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径
官方项目地址:https://github.com/alibaba/druid
引进官网的代码,并加入到公共模块
注意:配置路径记得改为你项目的路径地址
系统模块引入druid模块
访问地址:假设系统模块端口是 4403
Druid访问地址:http://localhost:4403/druid/api.html
WebStatFilter 具体配置可以参考官网
spring
datasource:
druid:
web-stat-filter:
enabled: true ##默认是关闭的
配置完出现画面
StatViewServlet配置
spring
datasource:
druid:
stat-view-servlet:
enabled: true ##默认是关闭的
例如 我spring-boot-dependencies有个 <log4j2.version>2.13.3</log4j2.version> 我想改为<log4j2.version>2.15.0</log4j2.version>版本
则只需要只控制版本中的bom文件添加<log4j2.version>2.15.0</log4j2.version>即可。
添加完打包部署依赖
这时候刷新依赖就变为2.15.0版本
把类CodeGenerator复制到你任意一个项目里面
然后填写
并且把tempates中的数据复制到对应得resource
并且pom导入依赖
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
<dependency>
<groupId>com.hjt</groupId>
<artifactId>demo-spring-boot-mybatis-plus</artifactId>
</dependency>
输出:
控制层加这个注解
请求头加对应得参数即可访问
备注:其实上面代码是有点搞笑的,三个||(或),你inner只要下来了,跟userid和username又有什么关系呢?后期再优化
hasPermi的值获取的是sys_menu中perms的值,看是否有包含
打个断点你就知道怎么肥实了
1.用BaseException去接受Exception异常,然后把对于的返回记录存到日志表中去