1、针对有参数构建赋值
public Person(String lastName, Integer age, String gender){
this.lastName = lastName;
this.age = age;
this.gender = gender;
}
使用constructor-arg来赋值
<bean id="person03" class="com.atguigu.bean.Person">
<!-- 调用有参构造器进行创建对象并赋值;掌握 -->
<!-- public Person(String lastName, Integer age, String gender, String email) -->
<constructor-arg name="lastName" value="小明"></constructor-arg>
<constructor-arg name="gender" value="男"></constructor-arg>
<constructor-arg name="age" value="18"></constructor-arg>
</bean>
2、内部赋值
代码
public class Person {
//基本类型直接使用
//<property name="lastName" value="小花"></property>自动的进行类型转换;
private Car car;
}
package com.atguigu.bean;
public class Car {
private String carName;
private Integer price;
private String color;
public Car() {
super();
// TODO Auto-generated constructor stub
System.out.println("car被创建...");
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public String toString() {
return "Car [carName=" + carName + ", price=" + price + ", color="
+ color + "]";
}
}
赋值
<bean id="person01" class="com.atguigu.bean.Person">
<!-- lastName="null" -->
<property name="lastName">
<!-- 进行复杂的赋值 -->
<null />
</property>
<!-- ref:代表引用外面的一个值 ;引用其他bean car = ioc.getBean("car01") -->
<!-- <property name="car" ref="car01"></property> -->
<property name="car">
<!--对象我们可以使用bean标签创建 car = new Car(); 引用内部bean;不能被获取到,只能内部使用 -->
<bean class="com.atguigu.bean.Car">
<property name="carName" value="自行车"></property>
</bean>
</property>
</bean>
3、list、map、properties赋值
private List<Book> books;
private Map<String, Object> maps;
private Properties properties;
<bean id="person02" class="com.atguigu.bean.Person">
<!-- 如何为list类型赋值 -->
<property name="books">
<!-- books = new ArrayList<Book>(); -->
<list>
<!-- list标签体中添加每一个元素 -->
<bean class="com.atguigu.bean.Book" p:bookName="西游记"></bean>
<!-- 引用外部一个元素 -->
<ref bean="book01" />
</list>
</property>
<!-- Map<String, Object> maps; -->
<property name="maps">
<!-- maps = new LinkedHashMap<>(); -->
<map>
<!-- 一个entry代表一个键值对 -->
<entry key="key01" value="张三"></entry>
<entry key="key02" value="18"></entry>
<entry key="key03" value-ref="book01"></entry>
<entry key="key04">
<bean class="com.atguigu.bean.Car">
<property name="carName" value="宝马"></property>
</bean>
</entry>
<entry key="key05">
<value>李四</value>
</entry>
<!-- <entry key="key05"> <map></map> </entry> -->
</map>
</property>
<!-- private Properties properties; -->
<property name="properties">
<!-- properties = new Properties();所有的k=v都是string -->
<props>
<!-- k=v都是string;值直接写在标签体中 -->
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>