如何手动获取 Spring 容器中的 bean?
发布日期:2021-06-30 12:55:26
浏览次数:2
分类:技术文章
本文共 1482 字,大约阅读时间需要 4 分钟。
Java技术栈
www.javastack.cn
关注阅读更多优质文章
ApplicationContextAware 接口的作用:
先来看下 Spring API 中对于 这个接口的描述:
即是说,当一个类实现了这个接口之后,这个类就可以方便地获得 ApplicationContext 中的所有bean。
换句话说,就是这个类可以直接获取Spring配置文件中,所有有引用到的bean对象。
如何使用 ApplicationContextAware 接口?
如何使用该接口?很简单。
1、定义一个工具类,实现 ApplicationContextAware,实现 setApplicationContext方法
public class SpringContextUtils implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(ApplicationContext context) throws BeansException { SpringContextUtils.context = context; } public static ApplicationContext getContext(){ return context; }}
如此一来,我们就可以通过该工具类,来获得 ApplicationContext,进而使用其getBean方法来获取我们需要的bean。,这篇推荐看下。
2、在Spring配置文件中注册该工具类
之所以我们能如此方便地使用该工具类来获取,正是因为Spring能够为我们自动地执行 setApplicationContext 方法,显然,这也是因为IOC的缘故,所以必然这个工具类也是需要在Spring的配置文件中进行配置的。
3、编写方法进行使用
一切就绪,我们就可以在需要使用的地方调用该方法来获取bean了。
public String ajaxRegister() throws IOException { UserDao userDao = (UserDao)SpringContextUtils.getContext().getBean("userDao"); if (userDao.findAdminByLoginName(loginName) != null || userDao.findUserByLoginName(loginName) != null) { message.setMsg("用户名已存在"); message.setStatus(false); } else { message.setMsg("用户名可以注册"); message.setStatus(true); } return "register"; }
作者:Dulk
来源:https://www.cnblogs.com/deng-cc/p/6373670.html
关注Java技术栈看更多干货
戳原文,获取精选面试题!
转载地址:https://javastack.blog.csdn.net/article/details/111306151 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月23日 09时36分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如果只有1小时学Python,看这篇就够了
2019-05-01
命名难,难于上青天
2019-05-01
记一件小事
2021-07-04
一个牛逼的数据库操作命令行工具:mycli
2021-07-04
掌握 Python 爬虫的所有技巧,都在这里!
2021-07-04
史上最烂项目:苦撑12年,600多万行代码...
2021-07-04
把 14 亿中国人都拉到一个微信群,在技术上能实现吗?
2021-07-04
斯坦福后空翻机器人设计、代码全开源,成本降至3000美元,人人皆可DIY
2021-07-04
618|Python购书攻略
2021-07-04
请停止学习框架
2021-07-04
考研比惨五大专业排行榜,第一名没人不服!
2019-05-01
没钱没公司,怎么做一款付费产品
2019-05-01
Python 3.8 新特性来袭
2019-05-01
老程序员“被嫌弃”
2019-05-01
神器:公众号如何从第一篇文章开始看
2019-05-01
查询亿级数据毫秒级返回!Elasticsearch 是如何做到的?
2019-05-01
FastAPI 构建 API 服务,究竟有多快?
2019-05-01
为什么Quora选择用Python语言?
2019-05-01
一劳永逸学编程的方法
2019-05-01