求教大神,关于获取Context

来源:3-5 Spring Bean装配之Resource

qq_下个瞬间_03247970

2017-12-07 23:10

@Test

//这个是我调用Test父类获取context

public void textMoocBeanName() {

//System.out.println("textMoocBeanName : " + super.getBean("moocBeanName").hashCode());

MoocBeanName bean = super.getBean("moocBeanName");

}

//这个是我通过接口调用获取context

@Override

public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

System.out.println("setApplicationContext : " + applicationContext.getBean(this.beanName).hashCode());

MoocBeanName bean = (MoocBeanName) applicationContext.getBean(this.beanName);

bean.aa();

}

//我在以上两种方式获取Context的时候有一个问题,就是为什么在测试类获取的Context不需要强制类型转换,而调用接口的方法则必须要强制类型转换才可以调用方法呢

写回答 关注

1回答

  • 笑傲独行侠
    2017-12-08 21:02:36
    已采纳

    因为第一种获取方法中的getBean方法并不是context中(系统中)自带的getBean方法,而是老师重写的getBean方法

      protected <T extends Object> T getBean(String beanId){

     return (T)context.getBean(beanId);

      }

    这个方法的返回值是一个泛型,就是说这个方法返回的任何类型都不用类型转换。<T extends Object>表示方法反悔的是随便任何类型的数据 

    qq_下个瞬...

    非常感谢!

    2017-12-10 22:21:09

    共 1 条回复 >

Spring入门篇

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

268787 学习 · 963 问题

查看课程

相似问题