zoukankan      html  css  js  c++  java
  • Spring注入不同的属性以及BEAN的作用域

    先建立一个Bean:

    Code

    Spring的配置文件如下:

    Code

    </beans>

    ps:内部bean(inner bean)是指在一个bean的<property/><constructor-arg/>元素中使用<bean/>元素定义的bean。内部bean定义不需要有id或name属性,即使指定id 或 name属性值也将会被容器忽略。

    属性编辑器如下(实现java.beans.PropertyEditorSupport类的setAsText方法):

    Code

     建立单元测试类

    Code

    测试结果如下:

    id:9
    name:tom
    stringargs:[Ljava.lang.String;@2cb49d
    lisrargs:[10002, 10003]
    setargs:[中国, 美国, 俄罗斯]
    mapargs:{m1=map1, m2=map2, m3=map3}
    date:Thu Nov 26 00:00:00 CST 2009

    在单元测试中添加新的方法:

    @Test
      
    public void isSameTest(){
           Bean bean1
    =(Bean)context.getBean("Bean");
            Bean bean2
    =(Bean)context.getBean("Bean");
            
    if(bean1==bean2){
                System.out.println(
    "bean1==bean2");
            }
    else{
                System.out.println(
    "bean1!=bean2");
            }
        }

    测试结果为:bean1==bean2

    这是因为Bean的作用域,默认为singleton,所以每次调用getBean()都返回同一个实例,处于线程安全考虑,可以把bean的scope设置prototype,这样就会返回不同的实例。

    <bean id="Bean" class="zhuru.Bean" scope="prototype">

    重新测试结果为:bean1!=bean2

  • 相关阅读:
    linux 更换golang版本
    ubuntu 搭建NFS
    golang 异步并发http轮询(爬虫)
    Mysql 事务锁等待时间超时
    排序算法之鸡尾酒排序
    Sql Server一个表向另一个表添加多条数据,关联时查询出一条数据
    Easyui datagrid 开始时间不能大于结束时间
    用python爬了上千万条招聘信息后,最终分析出python要学这些才能就业...
    用python把B站小姐姐跳舞视频爬下来,并打包成可以直接运行的exe文件
    女朋友股票亏惨了,我一怒之下用Python爬取了证券最新数据...
  • 原文地址:https://www.cnblogs.com/Fskjb/p/1611102.html
Copyright © 2011-2022 走看看