Springboot项目销毁实例以后自动执行业务方法

使用场景:

最近做的一个项目中使用了logback,每次启动项目以后会保存很多日志在本地,而且没有大小限制,也不会自动删除

之间没事的时候就手动删除一下,没有重视这个问题,但是有时间忘了删,导致隔一段时间以后项目里的日志文件占用极大空间,而且在全局搜索的时候会搜到日志里的代码,并且会有些卡。

我没有研究过logback的使用方法,所以没法从配置上下手(应该是可以屏蔽掉本地生成日志文件)
这里选择在项目实例销毁的时候自动删除一下日志文件(也算是自动删除了,hhh)

直接上代码:

package com.mgicode;

import java.io.File;

import javax.annotation.PreDestroy;

import org.springframework.stereotype.Component;

import cn.hutool.core.io.FileUtil;

/**
 * @author uni
 */
@Component
public class AutoDeleteClass {
    @PreDestroy
    public void delete() {
        String path = System.getProperty("user.dir") + File.separator + "klogs";
        System.out.println(path);
        FileUtil.del(path);
    }
}

使用@Component注解,将这个类注入bean,能被扫描到。
@PreDestroy注解注释在方法上用作回调通知,以表示实例正在被容器移除。带有PreDestroy注释的方法通常用于释放它一直持有的资源。 Java @PreDestroy 注解的使用

也就是说,每次销毁实例的时候,就会自动执行被标记的方法,也就是delete()这个方法。

在这里插入图片描述

然后可以看到项目里的文件夹已经被删除了,大功告成!

要注意的一点是这个配置类就不要提交到生产环境了,哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值