【SpringBoot基础系列-实战】如何指定 bean 最先加载(应用篇)
一灰灰Blog 人气:2
![](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**
中间件同学:吭哧吭哧的开发了一个
加载全部内容
- 猜你喜欢
- 用户评论