SpringHelper.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * 爱组搭,低代码组件化开发平台
  3. * ------------------------------------------
  4. * 受知识产权保护,请勿删除版权申明,开发平台不允许做非法网站,后果自负
  5. */
  6. package com.aizuda.service.spring;
  7. import org.springframework.context.ApplicationContext;
  8. import org.springframework.web.context.request.RequestAttributes;
  9. import org.springframework.web.context.request.RequestContextHolder;
  10. import org.springframework.web.context.request.ServletRequestAttributes;
  11. import jakarta.servlet.http.HttpServletRequest;
  12. /**
  13. * 爱组搭 http://aizuda.com
  14. * ----------------------------------------
  15. * Spring Boot 相关辅助类
  16. *
  17. * @author 青苗
  18. * @since 2021-10-28
  19. */
  20. @SuppressWarnings("unused")
  21. public class SpringHelper {
  22. private static ApplicationContext APPLICATION_CONTEXT;
  23. /**
  24. * 获取当前请求
  25. */
  26. public static HttpServletRequest getCurrentRequest() {
  27. RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
  28. if (null == requestAttributes) {
  29. // 这里不能抛出异常,存在为 null 的场景
  30. return null;
  31. }
  32. return ((ServletRequestAttributes) requestAttributes).getRequest();
  33. }
  34. /**
  35. * 设置 applicationContext
  36. */
  37. public static void setApplicationContext(ApplicationContext applicationContext) {
  38. if (null == APPLICATION_CONTEXT) {
  39. APPLICATION_CONTEXT = applicationContext;
  40. }
  41. }
  42. /**
  43. * 获取 applicationContext
  44. */
  45. public static ApplicationContext getApplicationContext() {
  46. return APPLICATION_CONTEXT;
  47. }
  48. /**
  49. * 通过class获取Bean
  50. *
  51. * @param clazz
  52. * @param <T>
  53. * @return
  54. */
  55. public static <T> T getBean(Class<T> clazz) {
  56. return getApplicationContext().getBean(clazz);
  57. }
  58. public static <T> T getBean(String name, Class<T> clazz) {
  59. return getApplicationContext().getBean(name, clazz);
  60. }
  61. }