Spring_用Spring容器创建对象并给属性赋值

Posted zhouchangyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring_用Spring容器创建对象并给属性赋值相关的知识,希望对你有一定的参考价值。

创建spring配置文件:spring-config.xml。对象的创建和赋值都在这里进行配置。

创建实体类,设置属性

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

public class BookBean {

    private Long bookId;
    private String bookName;
    private Float price;
    private List<String> fzb;
    private Map<String,String> fields;
    private CategoryBean categoryBean;  //引用另外一个实体类
     
//注意:
//如果有构造方法,创建对象时配置文件则会你读重写的构造的方法,如果用setter方法赋值,则必须要重载一个空的构造方法。
public BookBean() { } public BookBean(Long bookId, String bookName, Float price) { this.bookId = bookId; this.bookName = bookName; this.price = price; }
}

 

1.创建单例对象:在整个项目运行期间,这个对象只有一个。

 <bean class="com.lanou.demo.bean.BookBean" id="book1"/>

2.创建多例对象:每次取出的对象都是一个新的对象,

 <bean class="com.lanou.demo.bean.BookBean" id="book1" scope="prototype"/>

3.创建对象是为对象属性赋值,前提时属性必须要有setter方法

<bean class="com.lanou.demo.bean.BookBean" id="book2">

        <property name="bookId" value="1"/>
        <property name="bookName" value="西游记"/>
        <property name="price" value="34.4"/>

<!--为对象中的集合类型的属性赋值-->
        <property name="fzb">
            <list>
                <value>李忠仁</value>
                <value>马琳</value>
                <value>陈颖媛</value>
            </list>
        </property>

<!--为对象中的map类型的属性赋值: -->
        <!--第一种方式:-->
        <property name="fields">
            <map>
                <entry key="1" value="陈新元的诞生"/>
                <entry key="2" value="陈新元的灭亡"/>
            </map>
        </property>
<!--第二种方式:-->
        <property name="fields">
            <props>
                <prop key="1">陈新元的复活</prop>
                <prop key="1">陈新元的崛起</prop>
            </props>
        </property>

<!--在一个bean中引用另外一个bean的对象,使用ref赋值-->
        <property name="categoryBean" ref="category1"/>
   </bean>

4.用构造方法给属性赋值。

  <bean class="com.lanou.demo.bean.BookBean" id="book3">
        <!--为构造方法中bookId这个参数赋值-->
        <constructor-arg name="bookId" value="2"/>
        <constructor-arg name="bookName" value="西游记"/>
        <constructor-arg name="price" value="45.5"/>
    </bean>

 

以上是关于Spring_用Spring容器创建对象并给属性赋值的主要内容,如果未能解决你的问题,请参考以下文章

[Spring5]IOC容器_Bean管理注解方式_创建对象

[Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value

Spring IOC 容器源码分析 - 填充属性到 bean 原始对象

Spring_框架环境搭建

Spring的学习____5.Bean的作用域

怎么把自己创建的对象加到spring容器中。让spring管理