在非 Spring 管理的类中获取 Bean 的利器

在非 Spring 管理的类中获取 Bean 的利器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import lombok.NonNull;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import java.util.Objects;

@Component
public class SpringContextHolder implements ApplicationContextAware {

    private static ApplicationContext context;

    @Override
    public void setApplicationContext(@NonNull ApplicationContext applicationContext) {
        SpringContextHolder.context = applicationContext;
    }

    public static <T> T getBean(Class<T> clazz) {
        Objects.requireNonNull(context);
        return context.getBean(clazz);
    }

    public static Object getBean(String name) {
        Objects.requireNonNull(context);
        return context.getBean(name);
    }
}
本文作者:
本文链接: https://hgnulb.github.io/blog/2026/44605352
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!