获取spring bean的utils
<span style="font-size:10px;">package com.record.util; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import java.util.Map; /**
* 以静态变量保存Spring ApplicationContext.
*/
@SuppressWarnings("unchecked")
public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; public static ApplicationContext getApplicationContext() {
if (applicationContext == null)
throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextUtil");
return applicationContext;
} /**
* ApplicationContextAware接口的context注入函数.
*/
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
} public static <T> T getBean(String name) throws BeansException {
return (T) applicationContext.getBean(name);
} public static <T> T getBean(Class<T> cls) {
return getBean(cls, applicationContext);
} public static <T> T getBean(Class<T> cls, ApplicationContext ctx) {
Map<String, T> map = ctx.getBeansOfType(cls);
if (map == null || map.size() == 0) {
return null;
}
if (map.size() > 1) {
new Exception("bean is not unique.").printStackTrace();
}
return map.values().iterator().next();
}
}</span>
<span style="font-size:10px;">//对于无法获取spring容器的class 如servlet等 可以方便的获取spring容器中的bean, 配合 servlet3.0注解(如@WebServlet(urlPatterns = "/mobile/report/billExcel", asyncSupported = true))等 对原有项目可以做到完全不侵入,爽歪歪啊</span>
获取spring bean的utils的更多相关文章
- SpringBoot 注册拦截器方式及拦截器如何获取spring bean实例
		SpringBoot 注册拦截器时,如果用New对象的方式的话,如下: private void addTokenForMallInterceptor(InterceptorRegistry regi ... 
- filter中获取spring bean
		import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import ja ... 
- [十]SpringBoot 之 普通类获取Spring容器中的bean
		我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用 ... 
- SpringBoot 之 普通类获取Spring容器中的bean
		[十]SpringBoot 之 普通类获取Spring容器中的bean 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器 ... 
- 如何在静态方法或非Spring Bean中注入Spring Bean
		在项目中有时需要根据需要在自己new一个对象,或者在某些util方法或属性中获取Spring Bean对象,从而完成某些工作,但是由于自己new的对象和util方法并不是受Spring所 ... 
- 配置springmvc在其他类中(spring容器外)获取注入bean
		学习https://github.com/thinkgem/jeesite 今天在写JedisUtils的时候要注入JedisPool,而这个属性被设置为static,@Resource和@Autow ... 
- 【Spring】手动获取spring容器对象时,报no qualifying bean of type is defined
		手动获取容器对象时,报no qualifying bean of type is defined, 经过调查,发现手动获取的时候,该类所在的包必须经过spring容器初始化. 1.SpringConf ... 
- Java代码获取spring 容器的bean几种方式
		一.目的 写了一个项目,多个module,然后想在A模块中实现固定的config注入,当B模块引用A时候,能够直接填写相对应的配置信息就行了.但是遇到一个问题,B引用A时候,A的配置信息总是填充不了, ... 
- 单元测试之获取Spring下所有Bean
		单元测试中,针对接口的测试是必须的,但是如何非常方便的获取Spring注册的Bean呢? 如果可以获取所有的Bean,这样就可以将这个方法放到基类中,方便后面所有单元测试类的使用,具体实现如下: im ... 
随机推荐
- 【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言
			背景:以在线社区的留言板为例,为了不影响社区的发展,我们需要屏蔽侮辱性的言论,所以要构建一个快速过滤器,如果某条留言使用了负面或者侮辱性的语言,那么就将该留言标识为内容不当.过滤这类内容是一个很常见的 ... 
- 深入体会__cdecl与__stdcall
			在学习C++的过程中时常碰到WINAPI或者CALLBACK这样的调用约定,每每觉得十分迷惑.究竟这些东西有什么用?不用他们又会不会有问题?经过在网上的一番搜寻以及自己动手后,整理成以下的学习笔记.1 ... 
- Sublime 3 and Python
			1. 安装Anaconda插件 Ctrl+Shift+P打开控制面板,找到Install Package,回车 在弹出框中输入Anaconda,回车安装即可. 2.配置Anaconda文件 Prefe ... 
- H5页面适配所有iPhone和安卓机型的六个技巧
			http://www.th7.cn/web/html-css/201605/166006.shtml http://www.th7.cn/web/html-css/201601/153127.shtm ... 
- strlcpy() 函数
			size_t strlcpy(char *dst, const char *src, size_t siz) { char *d = dst; const char *s = src; size_t ... 
- H5调用本地摄像头
			<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"& ... 
- httpclient调用方法
			/** * GET请求 * * @param url * 请求url,参数拼在请求串中 */ public static String get(String url) ... 
- dns是什么
			域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ... 
- php中的PHP_EOL换行符
			看手册时发现PHP_EOL这个变量,查了下资料,原来是相当于换行符 在unix系列用 \n 在windows系列用 \r\n 在mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代 ... 
- 脚本添加crontab任务【转】
			今天朋友问,计划任务是用crontab -e来添加的,如何使用脚本来添加呢? 在执行crontab -e命令时,会在/var/spool/cron目录下创建一个文件,文件的名称是你当前的用户名,内容就 ... 
