雷神Spring实验4笔记

视频:https://www.bilibili.com/video/BV1d4411g7tv?from=search&seid=2379349544628579503

这些代码全部都在ioc2.xml实现
实验4:正确的为各种属性赋值
    测试使用null值 、
    引用类型赋值(引用其他bean、引用内部bean)(测试)
    集合类型赋值(List、Map、Properties)、(测试)
    util名称空间创建集合类型的bean
    级联属性赋值

1、测试使用null值
 <property name="lastName">
    			<!-- 进行复杂的赋值 在<property>标签进行 -->
    			<null />
    </property>
2、 引用类型赋值(引用外部bean、引用内部bean)
ref:代表引用外面的一个值 引用外部bean
<bean id="car01" class="com.atguigu.bean.Car">
    		<property name="carName" value="宝马"></property>
    		<property name="color" value="绿色"></property>
    		<property name="price" value="30000"></property>
    </bean>
    <property name="car" ref="car01"></property>
 引用内部bean
<bean id="person01" class="com.atguigu.bean.Person">
    		<property name="car">
    			<!--对象我们可以使用bean标签创建 <bean class="com.atguigu.bean.Car">相当于car = new Car(); -->
    			<!--引用内部bean;不能被获取到,只能内部使用-->
    			<bean class="com.atguigu.bean.Car">
    				<property name="carName" value="自行车"></property>
    			</bean>
    		</property>
     </bean>
3、集合类型赋值(List、Map、Properties)
list
<bean id="person02" class="com.atguigu.bean.Person">
     		<!-- books是list类型,如何为list类型赋值 -->
     		<property name="books">
     			<!-- <list></list>表示books = new ArrayList<Book>(); -->
     			<list>
     				<!--list里面有两本书:东游记和西游记-->
     				<bean class="com.atguigu.bean.Book" p:bookName="西游记"></bean>
     				<!-- 引用外部一个元素 -->
     				<ref bean="book01" />
     			</list>
     		</property>

map

<!-- Map<String, Object> maps; -->
		<property name="maps">
			<!-- <map></map>相当于maps = new LinkedHashMap<>(); map里面元素是key-value 用entry -->
			<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" value="李四"-->
				
			</map>
		</property>

Properties

<!-- private Properties properties; -->
		<property name="properties">
			<!-- <props></props>properties = new Properties();所有的k=v都是string -->
			<props>
				<!-- k=v都是string;value直接写在标签体中 -->
				<prop key="username">root</prop>
				<prop key="password">123456</prop>
			</props>
		</property>
	</bean>

4、util名称空间创建集合类型的bean

<!-- util名称空间创建集合类型的bean;方便别人引用 -->
	<bean id="person03" class="com.atguigu.bean.Person">
		<!-- <property name="maps" ></property> -->
		<property name="maps" ref="myMap"></property>
	</bean>

	<!-- util名称标签<util:map></util:map>相当于new LinkedHashMap<>() -->
	<util:map id="myMap">
		<!-- 添加元素 -->
		<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>
	</util:map>
<!--不要在<util:list></util:list>里面再来<list></list>-->
<!-- 下面输出的结果是4个元素 [[],Person,12,{}] -->
	<util:list id="myList">
		<list></list>
		<bean class="com.atguigu.bean.Person"></bean>
		<value>12</value>
		<ref bean="myMap"/>
	</util:list>

5、级联属性赋值

   <bean id="car01" class="com.atguigu.bean.Car">
		<property name="carName" value="宝马"></property>
		<property name="color" value="绿色"></property>
 		<property name="price" value="30000"></property>
   </bean>

    <!-- 级联属性可以修改属性的属性,注意:原来的bean的值可能会被修改-->
    <!-- 级联属性赋值:级联属性:属性的属性-->
	<!--举例 Class Person 里面有一个 private Car car; 对应Class Car, Class Car里面定义一个private String carName,此时carName就是Person的级联属性-->
	<bean id="person04" class="com.atguigu.bean.Person">
		<!--为car赋值的时候。改变car的价格  -->
		<property name="car" ref="car01"></property>
		<!--  -->
		<property name="car.price" value="900000"></property>
	</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值