问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何通过spring的配置文件得到bean对象

发布网友 发布时间:2022-04-21 01:06

我来回答

1个回答

热心网友 时间:2022-06-17 00:19

方法一:在初始化时保存ApplicationContext对象
方法二:通过Spring提供的utils类获取ApplicationContext对象
方法三:继承自抽象类ApplicationObjectSupport
方法四:继承自抽象类WebApplicationObjectSupport
方法五:实现接口ApplicationContextAware
方法六:通过Spring提供的ContextLoader
获取spring中bean的方式总结:

方法一:在初始化时保存ApplicationContext对象
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("userService");//比如:<bean id="userService" class="com.cloud.service.impl.UserServiceImpl"></bean>

说明:这样的方式适用于采用Spring框架的独立应用程序,须要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象

ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc); ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc); ac1.getBean("beanId"); ac2.getBean("beanId");

说明:这样的方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象。然后在通过它获取须要的类实例。上面两个工具方式的差别是,前者在获取失败时抛出异常。后者返回null。
方法三:继承自抽象类ApplicationObjectSupport

说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法。能够方便的获取ApplicationContext。
Spring初始化时。会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport

说明:类似上面方法。调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware

说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext对象注入。
下面是实现ApplicationContextAware接口方式的代码,前面两种方法类似:
public class SpringContextUtil implements ApplicationContextAware { // Spring应用上下文环境 private static ApplicationContext applicationContext; /** * 实现ApplicationContextAware接口的回调方法。设置上下文环境 * * @param applicationContext */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } }

尽管,spring提供的后三种方法能够实如今普通的类中继承或实现对应的类或接口来获取spring 的ApplicationContext对象,可是在使用是一定要注意实现了这些类或接口的普通java类一定要在Spring 的配置文件applicationContext.xml文件里进行配置。否则获取的ApplicationContext对象将为null。
方法六:通过Spring提供的ContextLoader
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();wac.getBean(beanID);

最后提供一种不依赖于servlet,不须要注入的方式。可是须要注意一点,在server启动时。Spring容器初始化时,不能通过下面方法获取Spring 容器,细节能够查看spring源代码org.springframework.web.context.ContextLoader。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... spring 中怎么取得bean 如何取得Spring管理的bean 如何用spring获取bean 如何查看 spring注入的bean 采用spring注解后如何注入bean问题 急急急:Java普通工具类获取Spring中注入bean时偶尔发生异常 spring中哪些类需要作为bean来进行注入管理 spring 用哪种方式注入bean好 spring 如何用注解的方式给普通类注入bean spring在多线程中怎么注入bean 如何调用spring配置文件手动注入的bean spring的bean注入属性有哪几种方式 spring 普通类 怎么注入bean spring注入bean的几种方式 word表格文字上下居中怎么弄 word中的表格文字怎么上下居中 word表格里文字如何上下居中 word表格上下居中怎么弄 word表格文字上下居中怎么设置 如何使word表格中的文字上下居中 spring配置bean实例化有哪些方式 关于Spring注入,静态工具类怎么注入属性 谁知道Spring获取Bean的几种方式 红外测距仪有什么特点? 测距仪主要是通过什么实现的? 苹果手机里的号码怎么导入安卓手机 怎么从苹果手机导出电话号码到安卓手机 怎么将苹果手机里的电话号码导入安卓手机 苹果手机如何导入电话号码 苹果手机电话号码怎么弄到安装手机上 怎么使用短信辅助验证? 请使用手机号发送短信验证,怎么用手机号验证? 怎样给10690510295102发送短信验证 如何发短信获取验证码? 怎样发送短信验证 如何发短信获取验证码 想做短信验证怎么选? 怎么在电脑上使用wifi万能钥匙 笔记本电脑能不能用wifi万能钥匙 电脑能不能用wifi万能钥匙