【SpringBoot基础系列-实战】如何指定 bean 最先加载(应用篇)

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

【SpringBoot基础系列-实战】如何指定 bean 最先加载(应用篇)

一灰灰Blog   2020-03-19 我要评论
![](https://spring.hhui.top/spring-blog/imgs/200317/logo.jpg) > [【基础系列-实战】如何指定 bean 最先加载(应用篇)](https://mp.weixin.qq.com/s?__biz=MzU3MTAzNTMzMQ==&mid=2247484553&idx=1&sn=f2d20abf3f3d409c53d0ee2675f7ab00) 在日常的业务开发中,绝大多数我们都是不关注 bean 的加载顺序,然而如果在某些场景下,当我们希望某个 bean 优于其他的 bean 被实例化时,往往并没有我们想象中的那么简单 ## I. 启动类指定方式 在实际的 SpringBoot 开发中,我们知道都会有一个启动类,如果希望某个类被优先加载,一个成本最低的简单实现,就是在启动类里添加上依赖 ```java @SpringBootApplication public class Application { public Application(DemoBean demoBean) { demoBean.print(); } public static void main(String[] args) { SpringApplication.run(Application.class); } } ``` 请注意上面的构造方法,如果我们希望在应用启动之前,`demoBean`就已经被加载了,那就让 Application 强制依赖它,所以再 Application 的 bean 初始化之前,肯定会优先实例化`demoBean` 相信上面这种写法,大家并不会陌生,特别是当我们应用启动之后,发现某个依赖的 bean(一般来讲是第三方库提供的 bean)还没有初始化导致 npe 时,用这种方法还是比较多的 **case1** 我们且不谈这种实现方式是否优雅,当我们希望`targetBean`在所有的 bean 实例化之前被实例时,上面这种写法是否一定会生效呢? **case2** 中间件同学:吭哧吭哧的开发了一个

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们