SpringUtil.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package seecoder.devcloud.common.util;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.beans.BeansException;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.ApplicationContextAware;
  6. import javax.annotation.PostConstruct;
  7. /**
  8. * @author PuHong Weng
  9. * @date 2021/1/19
  10. * @description:
  11. */
  12. @Slf4j
  13. public class SpringUtil implements ApplicationContextAware {
  14. private static ApplicationContext applicationContext;
  15. public static SpringUtil springUtil ;
  16. @PostConstruct
  17. public void init() {
  18. springUtil = this;
  19. }
  20. @Override
  21. public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  22. if(SpringUtil.applicationContext == null) {
  23. SpringUtil.applicationContext = applicationContext;
  24. }
  25. log.info("ApplicationContext配置成功,在普通类可以通过调用SpringUtil.getAppContext()获取applicationContext对象,applicationContext="+SpringUtil.applicationContext);
  26. }
  27. //获取applicationContext
  28. public static ApplicationContext getApplicationContext() {
  29. return applicationContext;
  30. }
  31. //通过name获取 Bean.
  32. public static Object getBean(String name){
  33. return getApplicationContext().getBean(name);
  34. }
  35. //通过class获取Bean.
  36. public static <T> T getBean(Class<T> clazz){
  37. return getApplicationContext().getBean(clazz);
  38. }
  39. //通过name,以及Clazz返回指定的Bean
  40. public static <T> T getBean(String name,Class<T> clazz){
  41. return getApplicationContext().getBean(name, clazz);
  42. }
  43. }