还是上次的Person对象,里面有几个属性
private String lastname;
private Integer age;
private String gender;
private String email;
1.在组件中给类赋值
在Person类中增加属性Car,然后在注册中为Car赋值
private Car car;
在这里展示两种方式:
一种是引用外部的注册的组件,然后使用该组件的引用,但是这个是严格的引用,引用类赋值改变,这个也会跟着变
一种是直接在这里面写一个内部组件,这个组件是基本不会改变的。
(内部组件写id也没有用,不能被外部直接通过getBean方法获取)
<bean id="car01" class="com.lzt.bean.Car">
<property name="carName" value="baoma"></property>
<property name="color" value="baise"></property>
<property name="price" value="300000"></property>
</bean>
<bean id = "person01" class="com.lzt.bean.Person">
<property name="lastname">
<!-- 进行复杂赋值 -->
<null></null>
</property>
<!-- ref代表引用外面的值 这个是严格的引用 引用类变了,这个也会跟着变-->
<!--<property name="car" ref="car01"></property>-->
<property name="car">
<!-- 对象也可以直接通过bean创建 -->
<bean class="com.lzt.bean.Car">
<property name="carName" value="aodi"></property>
<property name="price" value="100000"></property>
</bean>
</property>
</bean>
2.在组件中给List对象赋值
private List<Book> books;
在property属性中给list赋值,使用<list>
标签,使用时相当于创建了一个新的LIst,list中可以注册多个bean,可以看到内部创建和外部引用的Book对象。
<property name="books">
<!-- books = new List<>(); -->
<list>
<!-- 内部创建 内部创建的bean不能被获取到 -->
<bean id="bookInner" class="com.lzt.bean.Book">
<property name="bookName" value="xiyouji"></property>
</bean>
<!-- 外部引用 -->
<ref bean="book01"></ref>
</list>
</property>
3.在组件中给map赋值
private Map<String,Object> maps;
在map中加入任意个entry,一个entry代表一个键值对,value中可以使用引用,或者注册简单或者复杂的属性。
<!-- private Map<String,Object> maps -->
<property name="maps">
<!-- maps = new LinkedHashMap<>(); -->
<map>
<!-- 一个entry代表一个键值对 -->
<entry key="key01" value="zhangsan"></entry>
<entry key="key02" value="18"></entry>
<entry key="key03" value-ref="book01"></entry>
<entry key="key04">
<bean class="com.lzt.bean.Car">
<property name="carName" value="sdads"></property>
</bean>
</entry>
<entry key="key05"><map></map></entry>
</map>
</property>
4.在组件中给Properties赋值
private Properties properties;
Properties就是key-value都是String类型的Map
</property>
<property name="properties">
<!-- properties = new Properties(); 所有key value都为String-->
<props>
<!-- 所有key value都为String 值直接写在标签体中-->
<prop key="username">root</prop>
<prop key="password">111111</prop>
</props>
</property>
5.想要在bean外面单独注册集合属性的话,可以使用util标签
比如这个util:map就是在外面单独注册一个map
<!-- util名称空间创建集合类型的bean 方便引用-->
<bean class="com.lzt.bean.Person" name="person03">
<property name="maps" ref="myMap"></property>
</bean>
<util:map id="myMap">
<!-- 添加元素 -->
<entry key="key01" value="hahahah"></entry>
</util:map>