1. 静态工具类方式(不推荐,sonar qube扫描有漏洞)
package com.yusys.init;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContextContainer implements ApplicationContextAware {private static ApplicationContext applicationContext; public static ApplicationContext getApplicationContext() {return applicationContext;}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {SpringContextContainer.applicationContext = applicationContext;}@SuppressWarnings("unchecked")public static <T> T getBean(String beanName) {return (T) applicationContext.getBean(beanName);}public static <T> T getBean(Class<T> clazz) {return applicationContext.getBean(clazz);}public static boolean containsBean(String name) {return applicationContext.containsBean(name);}public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {return applicationContext.isSingleton(name);}public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {return applicationContext.getType(name);}public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {return applicationContext.getAliases(name);}}
2. 注入方式
package com.yl.util;import javax.servlet.http.HttpServletRequest;import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class ApplicationUtil {public static WebApplicationContext getApplication() {ServletRequestAttributes requestAttribute = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = requestAttribute.getRequest(); WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());return applicationContext;}public static <T> T getBean(String beanName, Class<T> clazz) {return (T) getApplication().getBean(beanName, clazz);}public static <T> T getBean(Class<T> clazz) {return (T) getApplication().getBean(clazz);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!