xml配置bean
-
屬性配置
1.屬性配置必須要求實(shí)體類總存在無參構(gòu)造方法
2,屬性配置標(biāo)簽property-> name,value
<bean id="student" class="com.example.demo.entity.Student"> <property name="name" value="張三"></property> <property name="age" value="22"></property> </bean>
-
構(gòu)造方法配置
1.構(gòu)造方法會涉及到重載,則在配置bean是需要針對相應(yīng)的參數(shù)的類型碌更,位置進(jìn)行詳細(xì)的指出
2.構(gòu)造方法配置使用標(biāo)簽constructor-arg
<bean id="student" class="com.example.demo.entity.Student"> <constructor-arg value="zhansna" index="0" type="java.lang.String"></constructor-arg> <constructor-arg value="12" index="1" type="int"></constructor-arg> </bean>
3.在使用構(gòu)造方法設(shè)置屬性,會涉及到特殊字符情況下需要使用CDATA來進(jìn)行特殊字符內(nèi)容的包裹
<bean id="student" class="com.example.demo.entity.Student"> <constructor-arg> <value> <![CDATA[<張三`>]]> </value> </constructor-arg> <constructor-arg value="12" index="1" type="int"></constructor-arg> </bean>
4.屬性值不光可以通過value屬性值進(jìn)行諸如赡鲜,還可以使用value子節(jié)點(diǎn)進(jìn)行注入
-
bean配置中對象之間互相的引用
在使用對象之間引用時吝镣,可以使用ref指向配置好的對象
<bean id="student" class="com.example.demo.entity.Student"> <property name="name" value="張三"></property> <property name="age" value="22"></property> <property name="school" ref="school"></property> </bean> <!--School配置--> <bean id="school" class="com.example.demo.entity.School"> <property name="schoolName" value="清華大學(xué)"></property> <property name="schoolAddress" value="北京市海淀區(qū)"></property> </bean>
除了使用ref指向,還可以使用配置內(nèi)部bean的方式來實(shí)現(xiàn)對象之間的相互調(diào)用
```
<!--內(nèi)部bean配置-->
<!--配置外部bean信息-->
<bean id="stu" class="com.example.demo.entity.Student">
<property name="name" value="Rose"></property>
<property name="age" value="23"></property>
<property name="school">
<!--配置內(nèi)部bean-->
<bean class="com.example.demo.entity.School">
<property name="schoolName" value="北京大學(xué)"></property>
<property name="schoolAddress" value="北京市海淀區(qū)"></property>
</bean>
</property>
</bean>
```
- 集合屬性配置
1.list配置:標(biāo)簽list
引用外部配置的bean
<!--配置課程-->
<bean id="course_chinese" class="com.example.demo.entity.Course">
<property name="id" value="10001"></property>
<property name="name" value="Chinese"></property>
<property name="source" value="89.9"></property>
</bean>
<bean id="course_english" class="com.example.demo.entity.Course">
<property name="id" value="10002"></property>
<property name="name" value="English"></property>
<property name="source" value="70.6"></property>
</bean>
<bean id="course_math" class="com.example.demo.entity.Course">
<property name="id" value="10003"></property>
<property name="name" value="Math"></property>
<property name="source" value="90.5"></property>
</bean>
<!--list集合配置:引用外部配置的課程-->
<bean id="stu1" class="com.example.demo.entity.Student">
<property name="name" value="Tims"></property>
<property name="school" ref="school"></property>
<property name="age" value="26"></property>
<property name="courses">
<list>
<ref bean="course_chinese"></ref>
<ref bean="course_english"></ref>
<ref bean="course_math"></ref>
</list>
</property>
</bean>
內(nèi)部配置的bean
<!--list集合配置:內(nèi)部配置的課程-->
<bean id="stu2" class="com.example.demo.entity.Student">
<property name="name" value="Java"></property>
<property name="school" ref="school"></property>
<property name="age" value="26"></property>
<property name="courses">
<list>
<bean class="com.example.demo.entity.Course">
<property name="id" value="10001"></property>
<property name="name" value="Chinese"></property>
<property name="source" value="89.9"></property>
</bean>
<bean class="com.example.demo.entity.Course">
<property name="id" value="10002"></property>
<property name="name" value="English"></property>
<property name="source" value="70.6"></property>
</bean>
<bean class="com.example.demo.entity.Course">
<property name="id" value="10003"></property>
<property name="name" value="Math"></property>
<property name="source" value="90.5"></property>
</bean>
</list>
</property>
</bean>
2.針對集合配置中還有set泉蝌,數(shù)組(array)配置方式都一樣歇万,唯一區(qū)別就是針對不同數(shù)據(jù)結(jié)構(gòu)使用的標(biāo)簽不一樣而已
3.map配置 使用標(biāo)簽map,entry勋陪,key贪磺,value-ref
<!--map配置-->
<bean id="position" class="com.example.demo.entity.Position">
<property name="position">
<map>
<entry key="monitor" value-ref="stu1"></entry>
<entry key="commissaryInChargeOfStudies" value-ref="stu2"></entry>
</map>
</property>
</bean>
4.Properties配置 使用標(biāo)簽props,prop
<!--Properties屬性配置-->
<bean id="properties" class="com.example.demo.entity.DataSource">
<property name="properties">
<!--模擬數(shù)據(jù)庫連接配置信息-->
<props>
<prop key="username">root</prop>
<prop key="password">12345678</prop>
<prop key="jdbcurl">jdbc:mysql://......</prop>
<prop key="driverClass">com.mysql.jdbc.Driver</prop>
</props>
</property>
</bean>
- 配置獨(dú)立的bean共外部多個對象去使用诅愚,避免每次針對不同對象都的在xml文件中配置
<!--util進(jìn)行配置-->
<!--courses集合可以在xml文件中隨處被調(diào)用寒锚,也就是將courses獨(dú)立出來,便于別的對象直接關(guān)聯(lián)-->
<util:list id="courses">
<ref bean="course_math"></ref>
<ref bean="course_english"></ref>
<ref bean="course_chinese"></ref>
</util:list>
<bean id="stu5" class="com.example.demo.entity.Student">
<property name="name" value="JSON"></property>
<property name="age" value="33"></property>
<property name="school" ref="school"></property>
<property name="courses" ref="courses"></property>
</bean>
- p命名空間進(jìn)行配置,相對于傳統(tǒng)的配置方式更加的簡潔
<!--p命名空間進(jìn)行配置-->
<bean id="stu4" class="com.example.demo.entity.Student" p:name="Rose" p:age="22" p:courses-ref="course_math"
p:school-ref="school">
</bean>