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>