SpringBeanUtil.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package cn.iocoder.dashboard.util.sping;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.beans.factory.NoSuchBeanDefinitionException;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.ApplicationContextAware;
  6. import org.springframework.stereotype.Component;
  7. @Component
  8. public class SpringBeanUtil implements ApplicationContextAware {
  9. /**
  10. * Spring context
  11. */
  12. private static ApplicationContext applicationContext = null;
  13. public void setApplicationContext(ApplicationContext context) throws BeansException {
  14. if (applicationContext == null) {
  15. applicationContext = context;
  16. }
  17. }
  18. public static ApplicationContext getApplicationContext() {
  19. return applicationContext;
  20. }
  21. public static void setAppCtx(ApplicationContext webAppCtx) {
  22. if (webAppCtx != null) {
  23. applicationContext = webAppCtx;
  24. }
  25. }
  26. /**
  27. * 拿到ApplicationContext对象实例后就可以手动获取Bean的注入实例对象
  28. */
  29. public static <T> T getBean(Class<T> clazz) {
  30. return getApplicationContext() == null ? null : getApplicationContext().getBean(clazz);
  31. }
  32. public static <T> T getBean(String name, Class<T> clazz) throws ClassNotFoundException {
  33. return getApplicationContext() == null ? null : getApplicationContext() .getBean(name, clazz);
  34. }
  35. public static final Object getBean(String beanName) {
  36. return getApplicationContext() == null ? null : getApplicationContext() .getBean(beanName);
  37. }
  38. public static final Object getBean(String beanName, String className) throws ClassNotFoundException {
  39. Class<?> clz = Class.forName(className);
  40. return getApplicationContext() == null ? null : getApplicationContext() .getBean(beanName, clz.getClass());
  41. }
  42. public static boolean containsBean(String name) {
  43. return getApplicationContext() == null ? null : getApplicationContext() .containsBean(name);
  44. }
  45. public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
  46. return getApplicationContext() == null ? null : getApplicationContext() .isSingleton(name);
  47. }
  48. public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
  49. return getApplicationContext() == null ? null : getApplicationContext() .getType(name);
  50. }
  51. public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
  52. return getApplicationContext() == null ? null : getApplicationContext() .getAliases(name);
  53. }
  54. }