Spring入门第二个例子

集合数组属性的装配

第一步:建立java项目,导入如下jar包
commons-logging-1.1.3.jar
spring-beans-4.2.4.RELEASE.jar
spring-context-4.2.4.RELEASE.jar
spring-context-support-4.2.4.RELEASE.jar
spring-core-4.2.4.RELEASE.jar
spring-expression-4.2.4.RELEASE.jar
第二步:在src下创建com.entity包里面建立两个类Teacher和User

package com.entity;

public class Teacher {
  private int id;
  private String name;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public Teacher() {

}
public Teacher(int id, String name) {
    super();
    this.id = id;
    this.name = name;
}

}
package com.entity;

import java.util.List;
import java.util.Map;

public class User {
  private String name;
  private List<String> adress;
  private String [] ss;
  private Map<String,Teacher> teachers;

public Map<String, Teacher> getTeachers() {
    return teachers;
}

public void setTeachers(Map<String, Teacher> teachers) {
    this.teachers = teachers;
}

public String[] getSs() {
    return ss;
}

public void setSs(String[] ss) {
    this.ss = ss;
}

public List<String> getAdress() {
    return adress;
}

public void setAdress(List<String> adress) {
    this.adress = adress;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
 public void abc(){
     System.out.println("abc方法");
 }

public User() {
    System.out.println("构造函数-user");
}
public void show(){
     System.out.println("init-销毁方法-show");
}


public User(String name, List<String> adress, String[] ss) {
    this.name = name;
    this.adress = adress;
    this.ss = ss;
}

}

第三步:在src下建立bean.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"
    default-lazy-init="true"
    >
    <!--    default-lazy-init="true"需要时在实例化  -->
    <bean id="user" class="com.entity.User" init-method="abc" destroy-method="show" scope="singleton">
        <property name="name" value="张三丰" ></property>
        <property name="adress">
            <list>
                <value>北京</value>
                <value>上海</value>
                <value>天津</value>
                <value>郑州</value>
            </list>
        </property>
        <property name="ss">
            <array>
                <value>张三</value>
                <value>李四</value>
                <value>王五</value>
                <value>赵六</value>
            </array>
        </property>
        <property name="teachers">
            <map>
                <entry key="tt1" value-ref="t1"></entry>
                <entry key="tt2" value-ref="t2"></entry>
                <entry key="tt3" value-ref="t3"></entry>
            </map>
        </property>
    </bean>
    <import resource="user.xml" />

</beans>

下面是引入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
    <bean name="t1" class="com.entity.Teacher">
        <constructor-arg name="id" value="1"></constructor-arg>
        <constructor-arg name="name" value="李老师"></constructor-arg>
    </bean>
    <bean name="t2" class="com.entity.Teacher">
        <constructor-arg name="id" value="2"></constructor-arg>
        <constructor-arg name="name" value="刘老师"></constructor-arg>
    </bean>
    <bean name="t3" class="com.entity.Teacher">
        <constructor-arg name="id" value="3"></constructor-arg>
        <constructor-arg name="name" value="张老师"></constructor-arg>
    </bean>
</beans>

test包下建立测试类Test

package com.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.entity.Teacher;
import com.entity.User;

public class Test {

    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
        User u = (User) ctx.getBean("user");
        /*System.out.println(u.getName());
        for (String s : u.getAdress()) {
            System.out.println(s);
        }
        for (String ss : u.getSs()) {
            System.out.println(ss);
        }*/
        for(Teacher t:u.getTeachers().values()){
            System.out.println(t.getName());
        }
        ClassPathXmlApplicationContext c=(ClassPathXmlApplicationContext) ctx;
        System.out.println("exit");
    }

}

第四步:ctr+f11运行即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值