您的位置:首页 > 编程语言 > Java开发

spring 获取Bean的几种方式

2017-06-30 10:05 357 查看
1.读取xml文件的方式,这种在初学入门的时候比较适用 。    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:tt.xml");    ApplicationContext applicationContext = new FileSystemXmlApplicationContext("classpath:tt.xml");要注意两个的区别,具体可以参看资料:http://blog.csdn.net/wufaliang003/article/details/733503412.继承spring的Aware类,覆盖方法实现获取上下文,从上下文中获取。
2.1.继承自抽象类ApplicationObjectSupport
    说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
    Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。2.2:继承自抽象类WebApplicationObjectSupport
    说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext2.3:实现接口ApplicationContextAware
     说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
    Spring初始化时,会通过该方法将ApplicationContext对象注入。@Override
public void setApplicationContext(ApplicationContext applicationcontext)
throws BeansException {
this.applicationcontext = applicationcontext;
}
3.借助于spring提供的工具类
WebApplicationContextUtils.getWebApplicationContext(ServletContext) 需要传入Servletcontext ,通常从request中获取req.getSession().getServletContext()。适合于controller或者action中直接获取,但通常会直接@autoWire注入。
4.适用工具类ContextLoader.getCurrentWebApplicationContext()。
这种最简单,用起来最方便,不需要继承,不需要注入,直接使用静态代码。注意一点,在服务器启动时,Spring容器初始化时,不能使用,在应用启动后方可使用。
关注微信公众号和今日头条,精彩文章持续更新中。。。。。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: