-
autoLog-03-java 注解结合 spring aop 自动输出日志新增拦截器与过滤器
auto-log
auto-log 是一款为 java 设计的自动日志监控框架。
前面已经写过了两篇:
java 注解结合 spring aop 实现自动输出日志
java 注解结合 spring aop 实现日志 traceId 唯一标识
经过前面2篇的代码实现,发现依然存在下列问题:
(1)注解的使用依然不够便捷。
如果每一个方法上都指定 @AutoLog,依然会比较麻烦。...
2023-08-06 00:00:00 |
Trace
-
autoLog-02-java 注解结合 spring aop 实现日志traceId唯一标识
MDC 的必要性
日志框架
日志框架成熟的也比较多:
slf4j
log4j
logback
log4j2
我们没有必要重复造轮子,一般是建议和 slf4j 进行整合,便于后期替换为其他框架。
日志的使用
基本上所有的应用都需要打印日志,但并不是每一个开发都会输出日志。
主要有下面的问题:
(1)日志太少,出问题时无法定位问题
(2)日志太多,查找问题很麻烦,对服务器...
2023-08-06 00:00:00 |
Trace
-
autoLog-01-java 注解结合 spring aop 实现自动输出日志
java 注解结合 spring aop 实现自动输出日志
auto-log
auto-log 是一款为 java 设计的自动日志监控框架。
创作目的
经常会写一些工具,有时候手动加一些日志很麻烦,引入 spring 又过于大材小用。
所以希望从从简到繁实现一个工具,便于平时使用。
特性
基于注解+字节码,配置灵活
自动适配常见的日志框架
...
2023-08-06 00:00:00 |
Trace
-
spring @Scope 注解与 ScopedProxyMode 入门介绍
背景
今天看到了 @Scope 用来可以指定 spring 的代码模式,比如指定基于动态代理,这个挺不错的。
记录一下,以前学习过,但是没有注意过。
源码
@Scope 注解
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @...
2023-08-02 00:00:00 |
Spring
-
springboot spring 读取配置的几种方式
背景
想读取一下配置文件,这里整理一下一共几种方式。
Spring Boot 中读取配置文件有以下 5 种方法:
使用 @Value 读取配置文件。
使用 @ConfigurationProperties 读取配置文件。
使用 Environment 读取配置文件。
使用 @PropertySource 读取配...
2023-08-02 00:00:00 |
Spring
-
spring mvc interceptor 两种配置方式:xml 文件和 java 类注解
SpringMVC 自定义拦截器
简介
Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口
– preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对 请求进行拦截处理后还要调用其他的拦截器,或者是业...
2023-08-02 00:00:00 |
Spring
-
spring 如何动态注入 Bean,根据开关动态指定
业务背景
写了基于 aop 切面的统一组件,因为有些切面的涉及点比较多,有些客户端的写法不够规范。
比如 final,或者用户自定义注解增强之后无法获取。
1)希望用户可以动态指定 aop 等注入类信息
2)希望根据条件,比如是否存在 class 动态配置
动态注册bean的两种api
Spring中的bean定义都保存在 BeanDefinitionRegistry 接口中,单...
2023-08-02 00:00:00 |
Spring
-
spring 增强之后无法获取自定义注解属性及解决方案
场景
为了便于后期代码拓展,在代码中定义了一些注解,统一处理逻辑。
后来有开发同事反应,使用了一下 @Transactional 注解之后,注解直接无效了。
问题演示
为了演示整个过程,我们从最简单的简化版本开始。
注解定义
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interfac...
2023-08-02 00:00:00 |
Spring