1). 若字面值中包括特殊字符,则能够使用 value 节点的 <![CDATA[]]> 把字面值包裹起来。 <constructor-arg> <!-- 若 value 属性值中包括特殊字符串, 则能够使用 value 子节点来注入属性值. value 子节点中能够使用 CDATA --> <value><![CDATA[Zheng <><> zhou]]></value> </constructor-arg>2). 在 Bean 的配置文件里, 能够通过 <ref> 元素或 ref 属性为 Bean 的属性或构造器參数指定对 Bean 的引用. <bean id="dao" class="com.atguigu.spring.ioc.ref.Dao"> <property name="database" value="DB2"></property> </bean> <bean id="service2" class="com.atguigu.spring.ioc.ref.Service"> <property name="dao" ref="dao"></property> </bean> ------------------------------------------------------------------------------ 解析:<property name="dao" ref="dao"></property> 的作用为: Dao dao = (Dao)ctx.getBean("dao"); Service service = (Service)ctx.getBean("service2"); service.setDao(dao);3). 能够在属性或构造器里包括 Bean 的声明, 这种 Bean 称为内部 Bean <bean class="com.atguigu.spring.ioc.ref.Service" id="service"> <property name="dao"> <bean class="com.atguigu.spring.ioc.ref.Dao"> <property name="database" value="MySQL"></property> </bean> </property> </bean> 解释:类似于下面代码,但 dao 的这个 bean 事实上是没有 id 的,也不能被其它的 bean 来引用。也不能单独从 IOC 容器中获取。 <bean class="com.atguigu.spring.ioc.ref.Dao" id="dao"> <property name="database" value="MySQL"></property> </bean> <bean class="com.atguigu.spring.ioc.ref.Service" id="service"> <property name="dao" ref="dao"></property> </bean> ①. 当 Bean 实例只给一个特定的属性使用时, 能够将其声明为内部 Bean. 内部 Bean 声明直接包括在 <property> 或 <constructor-arg> 元素里, 不须要设置不论什么 id 或 name 属性 ②. 内部 Bean 不能使用在不论什么其它地方4). 能够使用专用的 <null/> 元素标签为 Bean 的字符串或其他对象类型的属性注入 null 值 <bean id="car6" class="com.atguigu.spring.ioc.Car"> <!-- 为 maxSpeed 赋值为 null, 而 value="null" 是把 null 这个字符串赋给了相应的属性 --> <property name="corp"><null/></property> </bean>5). Spring 支持级联属性的配置。 <bean id="action3" class="com.atguigu.spring.ioc.ref.Action"> <property name="service" ref="service2"></property>
<!-- 为 service 的 dao 的 database 赋值为 ORACLE --> <property name="service.dao.database" value="ORACLE"></property> </bean> 6). 配置 java.util.List 类型的属性, 须要指定 <list> 标签, 在标签里包括一些元素. 这些标签能够通过 <value> 指定简单的常量值, 通过 <ref> 指定对其它 Bean 的引用. 通过<bean> 指定内置 Bean 定义. 通过 <null/> 指定空元素. 甚至能够内嵌其它集合. <property name="cars"> <!-- 通过 list 指定集合属性的值. 但 list 是一个内部 list, 不能被其它的 bean 引用. --> <list> <!-- ref 直接指向已有的 bean --> <ref bean="car"/> <ref bean="car2"/> <ref bean="car3"/> <!-- bean 声明内部 bean --> <bean class="com.atguigu.spring.ioc.Car"> <property name="brand" value="BMW"></property> <property name="corp" value="HuaChen"></property> <property name="maxSpeed" value="300"></property> <property name="price" value="800000"></property> </bean> </list> </property> 7). 能够使用 util schema 里的集合标签定义独立的集合 Bean. 须要注意的是, 必须在 <beans> 根元素里加入 util schema 定义 ①. 导入 util 命名空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> ②. 定义集合 Bean <util:list id="cars"> <!-- ref 直接指向已有的 bean --> <ref bean="car"/> <ref bean="car2"/> <ref bean="car3"/>
<!-- bean 声明内部 bean --> <bean class="com.atguigu.spring.ioc.Car"> <property name="brand" value="BMW"></property> <property name="corp" value="HuaChen"></property> <property name="maxSpeed" value="300"></property> <property name="price" value="800000"></property> </bean> </util:list> 8). 配置 Map Bean <util:map id="config"> <entry key="user" value="root"></entry> <entry key="password" value="1230"></entry> <entry key="driverClass" value="com.mysql.jdbc.Driver"></entry> <entry key="jdbcUrl" value="jdbc:mysql:///test"></entry> </util:map> 9). 配置 Properties 的属性 <property name="properties"> <props> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="b">B</prop> <prop key="c">C</prop> <prop key="d">D</prop> </props> </property> 10). 使用 p 命名空间简化 bean 的属性配置: ①. 导入 p 的命名空间 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> ②. 使用 p 命名空间进行配置 <bean id="car7" class="com.atguigu.spring.ioc.Car" p:brand="Mazda" p:corp="ChangAn" p:maxSpeed="220" p:price="200000"/>
转载于:https://www.cnblogs.com/bhlsheji/p/5058298.html
转载请注明原文地址: https://win8.8miu.com/read-1548891.html