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>
                    
                
                
            
        
浙公网安备 33010602011771号