/* * Copyright (c) 2018-2028, DreamLu All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: DreamLu 卢春梦 (596392912@qq.com) */ package org.springblade.core.tool.utils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; import org.springframework.lang.Nullable; /** * spring 工具类 * * @author Chill */ @Slf4j public class SpringUtil implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(@Nullable ApplicationContext context) throws BeansException { SpringUtil.context = context; } /** * 获取bean * * @param clazz class类 * @param 泛型 * @return T */ public static T getBean(Class clazz) { if (clazz == null) { return null; } return context.getBean(clazz); } /** * 获取bean * * @param beanId beanId * @param 泛型 * @return T */ public static T getBean(String beanId) { if (beanId == null) { return null; } return (T) context.getBean(beanId); } /** * 获取bean * * @param beanName bean名称 * @param clazz class类 * @param 泛型 * @return T */ public static T getBean(String beanName, Class clazz) { if (null == beanName || "".equals(beanName.trim())) { return null; } if (clazz == null) { return null; } return (T) context.getBean(beanName, clazz); } /** * 获取 ApplicationContext * * @return ApplicationContext */ public static ApplicationContext getContext() { if (context == null) { return null; } return context; } /** * 发布事件 * * @param event 事件 */ public static void publishEvent(ApplicationEvent event) { if (context == null) { return; } try { context.publishEvent(event); } catch (Exception ex) { log.error(ex.getMessage()); } } }