一、Spring Boot应用程序启动时执行一些前置初始化逻辑的方法

在Spring Boot中,我们可以在项目启动时执行一些初始化操作,以确保应用程序的稳定性。有以下几种常见的方法可以在Spring Boot项目启动时执行:

1. 实现InitializingBean接口,重写afterPropertiesSet()方法

InitializingBean接口提供了一种在Bean初始化后执行自定义初始化逻辑的方式,对于一些需要在Bean初始化后执行的操作,比如初始化连接池、加载资源或者预加载一些数据等,可以使用该接口实现。

代码:

@Component
public class TestInitializingBean implements InitializingBean {

	@Override
	public void afterPropertiesSet() throws Exception {
		//需要在项目启动时执行的逻辑
		System.out.println("测试 InitializingBean 接口")
	}
}

2. @PostConstruct注解

只需要在Bean的初始化方法上添加该注解即可。

代码:

@Service
public class TestPostConstruct {

	@PostConstruct
	public void init() {
		System.out.println("测试@PostConstruct注解");
	}
}

@PostConstruct注解只能用于非静态方法上,并且只能被标注在一个自定义的业务Bean上,从而达到更好的可读性和可维护性,但它不能被用在初始化Spring自身的对象上,比如BeanFactory和ApplicationContext对象。

  • 如果在实现InitializingBean接口的bean中,有方法添加了@PostConstruct注解,则添加了@PostConstruct注解的方法先执行,后执行afterPropertiesSet()方法
  • 如果在不同bean中,则先执行afterPropertiesSet()方法,后执行@PostConstruct标记的方法,但是在TestInitializing中加上自动注入,则先执行@PostConstruct标记的方法。

3. 实现ApplicationRunner或CommandLineRunner接口,重写run()方法

ApplicationRunner接口的声明如下:

@Component
public class TestApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        // 在此添加初始化逻辑
        System.out.println("测试 ApplicationRunner 接口");
    }
}

CommandLineRunner接口的声明如下:

@Component
public class TestCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        // 在此添加初始化逻辑-最后执行
         System.out.println("测试 CommandLineRunner 接口");
    }
}

总的来说,以上三种方式都可以在Spring Boot应用程序启动时执行一些前置初始化逻辑。在实际开发中,可以根据实际需要选择其中的一种或多种方式来实现。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值