spring学习笔记-----spring配置文件中java对象的属性赋值2

标题spring学习笔记-----spring容器给java对象赋值2(应用类型赋值和有参构造器赋值)

一.引用类型的赋值
实现步骤:
1.创建maven项目
2.加入maven依赖:
spring的依赖
junit依赖
3.创建类(接口和他的实现类)
和没有使用框架一样,就是普通的类
1.创建一个school类

public class school {
    private String school;
    private String address;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String addreess) {
        this.address = addreess;
    }

    @Override
    public String toString() {
        return "school{" +
                "school='" + school + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

2.创建一个Student类

public class Student {

    private  String name;
    private  int age;
    //定义一个应用类型school
    private   school  sc;
    //生成sc的set方法
    public void setSc(school sc) {

        this.sc = sc;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

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

    public void setAge(int age) {
        this.age = age;
        System.out.println(age);
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sc=" + sc +
                '}';
    }
}

4.创建spring需要使用的配置文件
声明类的信息,这些类由spring创建和管理
通过spring的语法,完成对属性的赋值。(1)应用类型的set注入:spring调用set方法

<!--声明scool对象sc,并且给属性赋值-->
    <bean id="sc" class="com.springproject.bao1.school">
        <property name="school" value="张三"/>
        <property name="address" value="成都市"/>
    </bean>

 <!--声明student对象stu,并且给属性赋值-->
    <bean id="stu" class="com.springproject.bao1.Student">
        <property name="name" value="张三"/>
        <property name="age" value="40"/>

<!--应用类型,给school 的sc属性赋值,将sc对象作为参数给应用类型school类,这里的name=“sc”,sc指的是school类中定义的应用类型sc,ref=“sc”,指的是school类的java对象,把它作为参数。-->
        <property name="sc" ref="sc"/>
    </bean>

5.测试spring创建的对象

   @Test
    public void test02(){
        //1.指定spring配置的文件名
        String config="templates/bao1/applicationConnext.xml";
        //2.创建表示spring容器的对象ac,
        ApplicationContext ac = new ClassPathXmlApplicationContext(config);//创建了一个容器对象ac。
        //从spring容器中getBean("配置文件中的bean的id")获取java对象stu,并且把它转成希望的类型
        Student stu1=(Student) ac.getBean("stu");
        System.out.println(stu1);
    }

6.运行截图
spring学习笔记-----spring配置文件中java对象的属性赋值2
spring学习笔记-----spring配置文件中java对象的属性赋值2
二.引用类型的赋值
实现步骤:
1.创建maven项目
2.加入maven依赖:
spring的依赖
junit依赖
3.创建类(接口和他的实现类)
和没有使用框架一样,就是普通的类
1.创建一个school类

public class school {
    private String school;
    private String address;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String addreess) {
        this.address = addreess;
    }

    @Override
    public String toString() {
        return "school{" +
                "school='" + school + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
2.创建一个student类
public class Student {

    private  String name;
    private  int age;
    //声明一个应用类型
    private school school;
    //无参构造
    public  Student(){
    }
    //有参构造
    public  Student(String myname,int myage,school myschool) {
        System.out.println("student的有参构造方法");
          this.name=myname;
          this.age=myage;
          this.school=myschool;

    }
        public void setName(String myname) {
        this.name = myname;
        System.out.println(myname);
    }
    public void setAge(int myage) {
        this.age = myage;
        System.out.println(myage);
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sc=" + school +
                '}';
    }
}

4.创建spring需要使用的配置文件
声明类的信息,这些类由spring创建和管理
通过spring的语法,完成对属性的赋值。
(2).构造器注入:spring调用类的有参构造器,创建对象时,在构造器中完成赋值:
构造注入使用:标签
标签:一个 标签表示构造方法的一个参数
标签属性:
name:表示构造方法的形参
index:构造方法的形参的位置,从左至右(0到n)
value:构造方法的形参是简单类型,使用value
ref:构造方法的形参是应用类型,使用ref
–>

<!--声明scool类对象sc,并且给属性赋值-->
    <bean id="sc" class="com.springproject.bao2.school">
        <property name="school" value="清华大学"/>
        <property name="address" value="北京"/>
    </bean>
    <!--使用name属性-->
    <!--声明student类对象sc,并且给属性赋值-->
    <bean id="mystudent" class="com.springproject.bao2.Student">
        <constructor-arg name="myname" value="李四"/>
        <constructor-arg name="myage" value="30"/>
        <constructor-arg name="myschool" ref="sc"/>
    </bean>
    <!--使用index属性-->
    <bean id="mystudent1" class="com.springproject.bao2.Student">
        <constructor-arg index="0" value="张三"/>
        <constructor-arg index="1" value="29"/>
        <constructor-arg index="2" ref="sc"/>
        <!--在这里index数值顺序无关,只要和后面的value,res匹配即可&ndash;&gt;
        例如:
        <constructor-arg index="1" value="29"/>
        <constructor-arg index="0" value="张三"/>
        <constructor-arg index="2" ref="sc"/>
        -->
    </bean>
    <!--省略index属性-->
    <bean id="mystudent2" class="com.springproject.bao2.Student">
    <constructor-arg value="王五"/>
    <constructor-arg value="40"/>
    <constructor-arg ref="sc"/>
    </bean>

5.测试spring创建的对象

public class bao2Test {
    @Test
    public void test(){
        String config="templates/bao2/applicationConnext.xml";
        //创建容器对象ac(在执行这条语句后java对象已经被创建好了保存在getmap中)
        ApplicationContext ac=new ClassPathXmlApplicationContext(config);

        Student stu=(Student) ac.getBean("mystudent");
        System.out.println("name属性给利用构造器给属性赋值"+'\n'+stu);

        Student stu1=(Student) ac.getBean("mystudent1");
        System.out.println("index属性给利用构造器给属性赋值"+'\n'+stu1);

        Student stu2=(Student) ac.getBean("mystudent2");
        System.out.println("index属性省略给属性赋值"+'\n'+stu2);


    }
}

6.运行截图和项目结构
spring学习笔记-----spring配置文件中java对象的属性赋值2
spring学习笔记-----spring配置文件中java对象的属性赋值2

上一篇:Cloneable的使用


下一篇:Spring基础入门文章