import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
@Component
public class MyComponent implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
// 你可以提供一个静态方法来从任何地方访问ApplicationContext
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
// 其他你的类的方法...
}
说明: 定义一个实现了ApplicationContextAware
接口的类,Spring容器会自动调用其中的setApplicationContext
方法,将当前的ApplicationContext注入进来。我们还定义了一个静态的getApplicationContext
方法,允许其他类方便地访问到ApplicationContext。
注意事项:记得要将这个类注册到Sprin容器中,如果是使用@Component注解的类,Spring Boot会自动发现并注册。如果不是,可以在配置类中显式地声明它(比如使用@Bean注解)。
调用示例:MyComponent
.getApplicationContext().getBean();