问答文章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

但是,对于系统中非Spring框架管理的类,如果需要获取Spring管理的类,或者,程序中需要动态的根据Bean的id来获取Bean实例,不可能事先为该类提供所有需要的Bean属性的setter方法,在类似这样的情况下,获取Spring框架管理的类实例的方法有多种,现在简单总结如下:方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId");说明:
这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象代码:import org.springframework.web.context.support.WebApplicationContextUtils; 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()方法,可以方便的获取到ApplicationCont
ext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext
context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对
象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。
以上方法适合不同的情况,请根据具体情况选用相应的方法。
这里值得提一点的是,系统中用到上述方法的类实际上就于Spring框架紧密耦合在一起了,因为这些类是知
道它们是运行在Spring框架上的,因此,系统中,应该尽量的减少这类应用,使系统尽可能的独立于当前运
行环境,尽量通过DI的方式获取需要的服务提供者。
本人认为,方法五比较可行,可以设计一个工具类,专门来获取Spring中的类。减少对业务代码的侵入性。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
智盈人生终身寿险万能型 电脑系统拷贝到u盘电脑系统如何备份到u盘 电脑系统怎么拷贝到u盘上电脑系统怎样下载到u盘里 怎样把电脑装好的系统下载到u盘怎么下载重装系统到u盘 电脑系统复制到u盘里面如何把电脑系统拷贝到U盘 u盘拷贝电脑系统步骤如何把电脑系统拷贝到U盘 如何把电脑系统备份到u盘如何把电脑系统拷贝到U盘 如何把电脑系统拷贝到U盘 电脑系统下载怎么能下到u盘怎么在电脑下载系统到u盘 U盘怎么拷贝电脑系统如何把电脑系统拷贝到U盘 word表格文字上下居中怎么弄 word中的表格文字怎么上下居中 word表格里文字如何上下居中 word表格上下居中怎么弄 word表格文字上下居中怎么设置 如何使word表格中的文字上下居中 word表格怎样让文字上下居中 如何让word表格中的文字上下居中 word表格里的字怎么上下居中 word里的表格怎么调整文字上下居中 在word表格中怎么让文字上下居中 怎么把word表格中的文字上下居中 word表格怎么让字体上下居中 word表格怎么调整文字上下居中 如何成为一个很厉害的人 读书笔记 如何成为一个很厉害的人读后感 在盘古开天地以前,有没有更早的神? 陈晓版神雕侠侣一灯大师没救英姑的孩子时放的音乐 电脑管家和360哪个好用? 四姐妹、网名、 spring 普通类 怎么注入bean spring的bean注入属性有哪几种方式 如何调用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注入,静态工具类怎么注入属性 谁知道Spring获取Bean的几种方式 红外测距仪有什么特点? 测距仪主要是通过什么实现的? 苹果手机里的号码怎么导入安卓手机
  • 焦点

最新推荐

猜你喜欢

热门推荐