前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring的bean的属性注入

Spring的bean的属性注入

作者头像
热心的社会主义接班人
发布2018-09-30 10:35:56
6850
发布2018-09-30 10:35:56
举报
文章被收录于专栏:cscscs

bean的属性注入3中方式。 1.0 接口注入。 2.0 构造函数注入。 3.0 setter方法的注入。

spring支持后面的2种注入 示范如下,设计一个Person类型,和一个Student类型。

Person类,采用setter方法注入属性。

public class Person {
    
    private String name;
    private int age;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
        
}

Student类, 采用构造函数注入属性值。

public class Student {
    
    private Person person;
    
    private String id;
    
    public Student(Person person,String id)
    {
        this.person=person;
        this.id=id;
        
        System.out.println("-construct-------"+id+"student被实列化"+person);
    }

    
    public void setPerson(Person person) {
        this.person = person;
    }


    public void setId(String id) {
        this.id = id;
    }
    
    public String getId() {
        
        return id;
    }
}

xml的配置如下

<bean id="person" class="Person">
<property name="name" value="dflx"></property>
<property name="age" value="999"></property>
</bean>

<bean id="student" class="Student">
<constructor-arg index="0" ref="person"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" value="123456"></constructor-arg>
</bean>

在main类中,进行相关的测试

    ApplicationContext app=new ClassPathXmlApplicationContext("helloMessage.xml");
        Student student=(Student) app.getBean("student");
        System.out.println("////////////////");
        System.out.println(student.getId());

结果如下所示

-construct-------123456student被实列化Person [name=dflx, age=999]
////////////////
123456

spring集合类型的属性注入 list和集合的注入 设置一个测试类,来展示注入。

ublic class TestDem {
    
    
    private ArrayList<String> list;
    
    private String[] str;
    
    public void setList(ArrayList<String> list) {
        this.list = list;
    }
    
    public void setStr(String[] str) {
        this.str = str;
    }
    
    
    @Override
    public String toString() {
        return "TestDem [list=" + list + ", str=" + Arrays.toString(str) + "]";
    }

    @Test
    public void test()
    {
        ApplicationContext app=new ClassPathXmlApplicationContext("helloMessage.xml");
        TestDem test=(TestDem) app.getBean("test");
        
        System.out.println(test);
        
    }
    

}

相关的xml配置如下

<bean id="test" class="TestDem" >
<property name="list">
<list>
<value>alice</value>
<value>jack</value>
</list>
</property>

<property name="str">
<list>
<value>11</value>
<value>22</value>
<value>33</value>
</list>
</property>
</bean>

最后的结果如下

TestDem [list=[alice, jack], str=[11, 22, 33]]

Set的注入

xml的相关配置如下

<bean id="test" class="TestDem" >
<property name="set">
<set>
<value>111</value>
<value>222</value>
</set>
</property>

</bean>

结果如下

TestDem [set=[111, 222]]

集合属性map的注入

<bean id="test" class="TestDem" >
<property name="map">
<map>
<entry key="1" value="alice"></entry>
<entry key="2" value="marry"></entry>
</map>
</property>
</bean>

结果如下

TestDem [map={1=alice, 2=marry}]

Properties的属性注入

其xml的配置如下

<bean id="test" class="TestDem" >
<property name="proper">

<props>
<prop key="东风">冷雪</prop>
<prop key="风">雨</prop>
</props>

</property>
</bean>
</beans>

结果如下

TestDem [proper={东风=冷雪, 风=雨}]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结果如下所示
  • 最后的结果如下
  • 结果如下
  • 结果如下
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档