spring 获取bean的方式
来源:互联网 发布:淘宝和天猫哪个靠谱 编辑:程序博客网 时间:2024/05/18 01:31
一直想总结一下spring获取bean的方式,我只记录三种,自以为三种应该就够我用了。
1.在spring的配置文件中配置自动扫描<context:component-scan base-package="*"></context:component-scan>,*代表你要扫描的包。在你需要由spring管理的类头上加上@Component 注解,这样在需要用到此bean的地方用
@Autowired
private TestService testService;
即可注入bean。
这种方式是我在项目中最常用也是感觉最方便的一种,这种方式在一般情况下都适用。
2.
ServletContext sc = request.getSession().getServletContext();
XmlWebApplicationContext cxt = (XmlWebApplicationContext) WebApplicationContextUtils.getWebApplicationContext(sc);
UserService userService = (UserService) cxt.getBean("userService");
这是第二种方式,我用这种方式主要是解决一种第一种方式解决不了的情况。举个例子,就是在web项目的Filter中需要获取spring管理的bean时,第一种方式是不能实现的。因为在项目启动时,初始化filter的时候,spring还没来得及扫描bean。这时就可以用这个方式来获取bean了。
3.实现ApplicationContextAware接口
- publicclassSpringContextUtilimplementsApplicationContextAware{
- // Spring应用上下文环境
- privatestaticApplicationContext applicationContext;
- /**
- * 实现ApplicationContextAware接口的回调方法。设置上下文环境
- *
- * @param applicationContext
- */
- publicvoid setApplicationContext(ApplicationContext applicationContext){
- SpringContextUtil.applicationContext= applicationContext;
- }
- /**
- * @return ApplicationContext
- */
- publicstaticApplicationContext getApplicationContext(){
- return applicationContext;
- }
- /**
- * 获取对象
- *
- * @param name
- * @return Object
- * @throws BeansException
- */
- publicstaticObject getBean(String name)throwsBeansException{
- return applicationContext.getBean(name);
- }
- }
这种情况可以用在项目中写一个获取bean的工具类,这种方式可以处理事先不确定要获取哪个bean的业务情况。
- spring 获取bean的方式
- spring bean的获取方式
- Spring获取Bean的几种方式
- Spring获取Bean的几种方式
- Spring获取Bean的几种方式
- Spring获取Bean的几种方式
- Spring获取Bean的几种方式
- Spring获取Bean的几种方式
- Spring中获取bean的方式总结
- spring中bean的获取方式总结
- Spring中获取bean的方式总结
- spring获取bean的几种方式
- Spring获取bean的三种方式
- spring 获取bean的几种方式
- spring 获取Bean的几种方式
- Spring获取bean的几种方式
- Spring中获取bean的方式
- spring通过编程的方式获取bean
- 洛谷1967 货车运输(NOIP2013)
- 23设计模式总结
- linux下使用centos iso文件作为yum安装源
- Unity打包Xcode项目,导出的项目为空,报错 UnusedBytecodeStripper2.exe --api NET_2_0_Subset -out
- vi编辑器及xshell命令行中最常使用的几个快捷键
- spring 获取bean的方式
- github入门到上传本地项目
- Android 欢迎页面 引导页
- puTTY
- 在单链表中删除指定值的节点
- 2017/11/6 我的第一篇博客--我的大一到大三的流水账记录
- JZOJ 5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列
- RAID技术详解
- 线性基