首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getBean(String )和getBean(String var1,Class<T> var2)在Spring框架中的区别

getBean(String )和getBean(String var1,Class<T> var2)在Spring框架中的区别
EN

Stack Overflow用户
提问于 2015-02-05 12:05:53
回答 1查看 734关注 0票数 2

当我尝试学习spring框架时,我遇到了两种方法。

代码语言:javascript
复制
Object getBean(String var1) throws BeansException;

<T> T getBean(String var1, Class<T> var2) throws BeansException;

我用这些代码对这些方法做了很少的性能测试:

代码语言:javascript
复制
        startTime = System.currentTimeMillis();
        Customer customer = context.getBean("customerBean", Customer.class);
        endTime = System.currentTimeMillis();
        System.out.println("NOT CASTED TIME: " + (endTime - startTime));

        startTime = System.currentTimeMillis();
        Customer customer1 = (Customer) context.getBean("customerBean");
        endTime = System.currentTimeMillis();
        System.out.println("CASTED TIME: " + (endTime - startTime));

产出如下:

未铸造时间: 17

铸造时间:1

此外,我还为bean.If设置了范围"prototype“--这是单例输出,它们的输出将是相同的。

有什么不同吗?

EN

回答 1

Stack Overflow用户

发布于 2020-05-02 05:50:53

对于功能差异,您可以引用这些方法的javadocs。但是对于性能测试,我重新创建了这个场景,下面是我得到的

代码语言:javascript
复制
startTime = System.currentTimeMillis();
Customer customer = context.getBean("customerBean", Customer.class);
endTime = System.currentTimeMillis();
System.out.println("NOT CASTED TIME: " + (endTime - startTime));

startTime = System.currentTimeMillis();
Customer customer1 = (Customer) context.getBean("customerBean");
endTime = System.currentTimeMillis();

产出如下:

未铸造时间: 10

铸造时间:0

如果我像这样颠倒顺序

代码语言:javascript
复制
    startTime = System.currentTimeMillis();
    Customer customer1 = (Customer) context.getBean("customerBean");
    endTime = System.currentTimeMillis();
    System.out.println("CASTED TIME: " + (endTime - startTime));

    startTime = System.currentTimeMillis();
    Customer customer = context.getBean("customerBean", Customer.class);
    endTime = System.currentTimeMillis();
    System.out.println("NOT CASTED TIME: " + (endTime - startTime));

然后,产出是:

铸造时间: 10

非铸造时间:0

如果您继续进一步重复代码,您将得到相同的值。

结论:无论方法如何,第一次只需要更多的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28343538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档