List,Set,Map,Properties的Spring注入实例

借用一下李刚书上的Spring  List,Set,Map,Properties注入例子,这是很简单的。map的注入方式写法有多种


定义接口:
package Bean.collections;

public interface Person …{
   public void useAxe();
}
  package Bean.collections;
   public interface Axe {
     public String chop();
   }


定义实现类:
package Bean.collections;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import Bean.collections.Person;

public class Chinese implements Person …{
    private List schools=new ArrayList();
    private Map scores=new HashMap();
    private Properties health=new Properties();
    private Set axes=new HashSet();
    public Set getAxes() …{
        return axes;
    }
    public void setAxes(Set axes) …{
        this.axes = axes;
    }
    public Properties getHealth() …{
        return health;
    }
    public void setHealth(Properties health) …{
        this.health = health;
    }
    public List getSchools() …{
        return schools;
    }
    public void setSchools(List schools) …{
        this.schools = schools;
    }
    public Map getScores() …{
        return scores;
    }
    public void setScores(Map scores) …{
        this.scores = scores;
    }
    public void useAxe() …{
        System.out.println(schools);
        System.out.println(scores);
        System.out.println(axes);
        System.out.println(health);
    }

}
package Bean.collections;

public class SteelAxe implements Axe …{

    public String chop() …{
        return "这是一把铁斧子";

    }

}


package Bean.collections;

public class WoodAxe implements Axe …{

    public String chop() …{
        return "这是一把木头斧子";

    }

}


spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

  <bean id="chinese" class="Bean.collections.Chinese">
    <property name="schools">
      <list>
         <value>小学</value>
         <value>中学</value>
         <value>大学</value>
      </list>
    </property>
    <property name="health">
       <props>
         <prop key="血压">正常</prop>
         <prop key="身高">178</prop>
       </props>
    </property>
    <property name="scores">
      <map>
        <entry key="数学">
           <value>88</value>
        </entry>
        <entry key="语文">
           <value>99</value>
        </entry>
      </map>
    </property>
    <property name="axes">
      <set>
        <value>字符串斧子</value>
        <!– 用嵌套bean定义属性 –>
        <bean class="Bean.collections.WoodAxe"/>
        <!– 引用bean作为属性 –>
        <ref local="steelaxe"/>
      </set>
    </property>
  </bean>
  <bean id="steelaxe" class="Bean.collections.SteelAxe"></bean>
</beans>

测试代码:

    public static void main(String[] args) throws Exception …{
       
        String path=new Test().getClass().getResource("/").getPath();
        String realpath=path.substring(1, path.length());
        ApplicationContext context=new FileSystemXmlApplicationContext(realpath+"/collection.xml");
       
       
        Person person1=(Person)context.getBean("chinese");
        person1.useAxe();
      
      
    }

运行结果:

[小学, 中学, 大学]
{数学=88, 语文=99}
[字符串斧子, Bean.collections.WoodAxe@1506dc4, Bean.collections.SteelAxe@1126b07]
{血压=正常, 身高=178}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值