Spring通过ApplicationContext主动获取bean
来源:互联网 发布:mysql count限制 编辑:程序博客网 时间:2024/05/21 09:59
原文地址:
http://blog.csdn.net/jinzhencs/article/details/51673782
问题1:
有个异步线程Runnable里面需要用到dao,无法通过AutoWired和compoment注解传递进来。
于是希望通过spring context主动去获取bean。
问题2:
getBean(name)获取失败。
解决:
默认的dao的name=类名(首字母小写)
例如:
接口名称:TemplateDao 则getName(“templateDao”)即可
通用的SpringContextUtil获取Bean
- 1.实现ApplicationContextAware接口
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 2.在web项目中的web.xml中配置加载Spring容器的Listener
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
getBeanByName(Class clazz)
这个方法更好使用,不过需要注意Dao和service的impl里面需要配置好名称为@Service(“myService”)
规则为接口Service的类名首字母小写。
第二种方式:
目前又做了个系统初始化的东东SystemInit,然后发现上面的getBean()用不了了。看了下发现是因为在系统初始化的时候SpringContextUtil还没有初始化,导致在SystemInit类里面的东西getBean()失败。
于是小改造了下,把ApplicationContextAware放在SystemInit类,然后注入到SpringContextUtil,这样就保证了在执行系统初始化方法之前,applicationContext一定不是null。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
阅读全文
0 0
- Spring通过ApplicationContext主动获取bean
- Spring通过ApplicationContext主动获取bean
- spring中通过ApplicationContext获取bean和通过bean工厂获取bean的区别
- grails 通过applicationContext获取bean
- Spring Bean获取applicationcontext方法
- Spring,通过ApplicationContextAware获取ApplicationContext
- springboot通过名称获取bean(applicationContext)
- Spring获取bean方式(BeanFactory和ApplicationContext)
- Spring获取bean方式(BeanFactory和ApplicationContext)
- spring获取applicationContext.xml中bean内容
- 使用spring配置C3P0连接池 并通过手动获取spring的ApplicationContext和bean对象使用库连接。
- 使用spring配置C3P0连接池 并通过手动获取spring的ApplicationContext和bean对象使用库连接
- 2.4 通过ApplicationContext接口获取Spring容器
- Spring Bean ApplicationContext BeanFactory
- spring3 ApplicationContext bean spring
- Spring bean生命周期---ApplicationContext
- Spring中从ApplicationContext中获取bean与从bean工厂中获取bean的区别
- 【转】从spring的bean中获取servletContext和applicationContext
- Leecode-Search Insert Position
- Android蓝牙开发资料
- 图片的热点区域
- crontab定时任务调用Kettle任务报错处理
- 日期插件可选范围控制在5周内
- Spring通过ApplicationContext主动获取bean
- 【Java Web开发】认识JSP 9个内置对象和序号方法说明
- 关于蓝牙的一些详细知识
- 1002 二哥种花生
- 各种数据库介绍及SQL注入攻击
- 在Mac下安装git
- python安装已经下载的库
- 剑指offer-链表中倒数第k个结点
- alfresco ldap配置openldap server 和 window的AD域