SpringContextUtils.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package net.chenlin.dp.common.utils;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. import org.springframework.stereotype.Component;
  6. /**
  7. * Spring Context 工具类
  8. * 1.在使用此静态方法的类上加注解 @DependsOn("springContextUtils")
  9. * 2.确保在此之前 SpringContextUtils 类已加载
  10. * @author zcl<yczclcn@163.com>
  11. */
  12. @Component
  13. public class SpringContextUtils implements ApplicationContextAware {
  14. private static ApplicationContext applicationContext;
  15. @Override
  16. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  17. SpringContextUtils.applicationContext = applicationContext;
  18. }
  19. public static ApplicationContext getApplicationContext() {
  20. assertApplicationContext();
  21. return applicationContext;
  22. }
  23. public static Object getBean(String name) {
  24. assertApplicationContext();
  25. return applicationContext.getBean(name);
  26. }
  27. public static <T> T getBean(String name, Class<T> requiredType) {
  28. assertApplicationContext();
  29. return applicationContext.getBean(name, requiredType);
  30. }
  31. public static boolean containsBean(String name) {
  32. assertApplicationContext();
  33. return applicationContext.containsBean(name);
  34. }
  35. public static boolean isSingleton(String name) {
  36. assertApplicationContext();
  37. return applicationContext.isSingleton(name);
  38. }
  39. public static Class<? extends Object> getType(String name) {
  40. assertApplicationContext();
  41. return applicationContext.getType(name);
  42. }
  43. private static void assertApplicationContext() {
  44. if (SpringContextUtils.applicationContext == null) {
  45. throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextUtils!");
  46. }
  47. }
  48. }