diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/SpringUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/SpringUtils.java index 087e4ffd..c0331fb5 100644 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/SpringUtils.java +++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/SpringUtils.java @@ -17,6 +17,7 @@ package top.continew.starter.core.util; import cn.hutool.extra.spring.SpringUtil; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; /** * Spring 工具类 @@ -40,4 +41,25 @@ public class SpringUtils { public static T getProxy(T target) { return (T)SpringUtil.getBean(target.getClass()); } + + /** + * 通过 class 获取 Bean + * + * @param Bean类型 + * @param clazz Bean类 + * @param ignoreNoSuchBeanEx 是否忽略 {@link NoSuchBeanDefinitionException} + * @return Bean对象 + * @see SpringUtil#getBean(Class) + * @since 2.13.1 + */ + public static T getBean(Class clazz, boolean ignoreNoSuchBeanEx) { + try { + return SpringUtil.getBean(clazz); + } catch (NoSuchBeanDefinitionException e) { + if (ignoreNoSuchBeanEx) { + return null; + } + throw e; + } + } }