>### 1.出現特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起來
~~~
<bean id="d4" class="cn.li.lesson3.Dog">
<!-- 使用子節點和 <![CDATA[<小黑>]]>給value設置特殊字符-->
<constructor-arg index="0">
<value><![CDATA[<小黑>]]></value>
</constructor-arg>
</bean>
~~~
>### 2.ref 引用其他的bean
~~~
<!-- 此時ref屬性的值 就是你要引用得bean的id... -->
<property name="pet" ref="dog"></property>
<!-- 或者 -->
<property name="pet">
<ref bean="dog"></ref>
(或者直接寫成<ref bean="dog"/>)
</property>
~~~
>### 3.內部bean不需要設置任何 id 或 name 屬性 ,不能使用在任何其他地方
~~~
<property name="pet">
<!-- 內部 Bean 聲明直接包含在 <property> 或 <constructor-arg> 元素里,
不需要設置任何 id 或 name 屬性
-->
<bean class="com.igeek.demo3.Pet">
<property name="petName" value="小橘"></property>
<property name="petType" value="貓"></property>
</bean>
</property>
~~~
>### 4.注入null值,使用<null/>標簽
~~~
<constructor-arg name="name">
<null/>
</constructor-arg>
~~~
>### 5.null值以及級聯屬性的注入
~~~
<bean id="timo" class="com.igeek.demo3.Pet">
</bean>
<!-- 添加有參構造器,不要忘記添加無參構造器 -->
<bean id="xl" class="com.igeek.demo3.Person">
<constructor-arg name="name">
<null/>
</constructor-arg>
<constructor-arg name="age" value="20"></constructor-arg>
<constructor-arg name="pet" ref="timo"></constructor-arg>
<!-- 為級聯屬性賦值 。前提是上面的pet屬性不能為null -->
<property name="pet.petName" value="提莫"></property>
<property name="pet.petType" value="LOL"></property>
</bean>
~~~
>### 6.配置集合類型的屬性(List,Array,Set)
~~~
<bean id="dog" class="com.igeek.demo4.Pet">
<property name="petName" value="大黃"></property>
<property name="petType" value="犬"></property>
</bean>
<bean id="cat" class="com.igeek.demo4.Pet">
<property name="petName" value="小橘"></property>
<property name="petType" value="貓"></property>
</bean>
<bean id="tom" class="com.igeek.demo4.Person">
<property name="pets">
<!--
如果數據類型為數組,也是使用<list>標簽進行配置。
如果是Set集合,使用<set>標簽進行配置。
(里面內容的配置方式都相同。)
-->
<list>
<ref bean="dog"/>
<ref bean="cat"/>
<null/>
<bean id="snake" class="com.igeek.demo4.Pet">
<property name="petName" value="大象"></property>
<property name="petType" value="蛇"></property>
</bean>
</list>
</property>
</bean>
~~~
>### 7.配置map類型
~~~
<bean id="jack" class="com.igeek.demo4.Person">
<property name="map">
<map>
<entry key="aa" value-ref="cat"></entry>
<entry key="bb" value-ref="dog"></entry>
</map>
</property>
</bean>
~~~
>### 8.配置properties類型
~~~
<bean id="testpros" class="com.igeek.demo4.Person">
<property name="pros">
<props>
<prop key="user">root</prop>
<prop key="password">root123</prop>
<prop key="jdbcUrl">jdbc:mysql:///test</prop>
<prop key="driverClass">com.mysql.jdbc.Driver</prop>
</props>
</property>
</bean>
~~~
>### 9.配置工具類集合
~~~
<!-- 首先導入util命名空間 -->
<?xml version="1.0" encoding="UTF-8"?>
<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"
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.2.xsd">
</beans>
<util:list id="pets">
<ref bean="cat"/>
<ref bean="dog"/>
</util:list>
<bean id="p4" class="cn.li.lesson5.Person">
<property name="pets">
<ref bean="pets"/>
</property>
</bean>
~~~
>### 10.使用p命名空間
~~~
<!-- 首先導入p命名空間 -->
xmlns:p="http://www.springframework.org/schema/p"
<bean id="p1" class="cn.li.lesson6.Person" p:name="玨網" p:age="20" p:pet-ref="pet">
</bean>
<bean id="pet" class="cn.li.lesson6.Pet">
<property name="name" value="鸚鵡"></property>
<property name="type" value="鳥"></property>
</bean>
<!-- 使用p命名空間(spring 2.5版本引入的) 可以簡化bean的配置 -->
~~~
>### 11.自動裝配
~~~
autowire = "byName" || "byType" 不推薦使用。
<!--
可以通過autowire屬性設置bean的自動裝配 。
byName 根據bean的名字和bean,setter風格的屬性名進行自動裝配,如有匹配則自動裝配,沒有不裝配。
byType 根據bean的類型,和當前bean屬性的類型進行自動裝配。如果ioc容器有1個以上類型匹配的bean的時候,則會拋出異常。
constructor 當前bean中有多個構造器的時候 會很復雜不推薦使用該方式。
自動裝配的弊端。
1.autowire屬性是配置在bean級別的,如果只希望裝配個別屬性,則不夠靈活。
2.要么根據類型 要么根據名字自動裝配 不能兩個一起使用。
在使用spring整合第三方框架的時候 會使用autowire 。。。
-->
<!-- <bean id="person" class="cn.li.lesson6.Person" p:name="tom" p:age="20" autowire="byType"></bean>
<bean id="timo" class="cn.li.lesson6.Pet" p:name="豬八戒" p:type="pig"></bean> -->
<bean id="p" class="cn.li.lesson6.Person" p:name="tom" p:age="20" autowire="byName"></bean>
<bean id="pet" class="cn.li.lesson6.Pet" p:name="豬八戒" p:type="豬"></bean>
~~~
- spring
- 1.spring第一天
- 1.1 安裝spring插件(spring tool suite)
- 1.2 spring概述
- 1.3 控制反轉&依賴注入
- 1.4 springIOC容器
- 1.5 依賴注入的四種方式
- 1.6 配置bean的細節
- 1.7 bean之間的關系
- 1.8 bean作用域
- 1.9 補充:創建對象的幾種方法
- 1源代碼位置
- 2.spring第二天
- 2.1 使用外部屬性文件
- 2.2 spEL
- 2.3 bean的生命周期
- 2.4 通過工廠方式配置bean
- 2.5 基于注解的方式配置bean
- 2.6 組件裝配
- 2.7 靜態代理
- 2.8 動態代理
- 2.9 Cglib代理
- 2源代碼位置
- 3. spring第三天
- 3.1 springAOP
- 3.1.1 AOP簡介
- 3.1.2 為什么使用AOP
- 3.1.3 AOP關鍵術語
- 3.1.4 AOP圖解
- 3.1.5 springAOP實現步驟
- 3.1.6 SpringAOP實現原理:
- 3.1.7 AOP的好處
- 3.1.8 AOP在實際項目中的主要應用
- 3代碼地址
- 3.1.9 純注解版配置aop的方式
- 3.2 maven環境搭建
- 附IDEA激活碼
- 4. spring第四天
- 4.1 c3p0事務
- 4.2 命令窗口事務
- 4.3 c3p0連接池設置
- 4.4 事務中的一些基本概念
- 4.5 事務的傳播行為
- 4.6 自定義異常
- 4.7 spring整合Junit單元測試
- 4.8 JdbcTemplate(附源代碼)
- 事務源代碼
- 4.9 純注解tx
- 4.10 基于xml配置事務
- 0. jsp頁面修改編碼方式
- 0.1 eclipse配置tomcat
- 0.單例模式-飽漢模式
- 0.單例模式-饑漢模式
- springMVC
- 1. springmvc第一天
- 1.1 springMVC概述
- 1.2 springmvc框架搭建及第一個應用程序
- 1.3 @RequestMapping
- 1.4 RequestMapping修飾類
- 1.5 RequestMapping精準化映射
- 1.6 Ant風格URL
- 1.7 帶有占位符的url映射
- 1.8 REST風格
- 1.9 RequerstParam獲取請求正文
- 2. springmvc第二天
- 2.1 優化
- 2.2 POJO綁定請求參數
- 2.3 RequestHeader獲取請求報頭信息
- 2.4 CookieValue獲取Cookie信息
- 2.5 獲取原生ServletAPI
- 2.6 ModelAndView處理模型數據
- 2.7 Map、Model、ModelMap處理模型數據
- 2.8 @SessionAttributes注解
- 2.9 @ModelAttribute無返回值方法及方法入參
- 2.10 @ModelAttribute修飾有返回值類型的方法
- 代碼地址
- 3. springmvc補充
- 3-1 springmvc工作原理
- 3-2 springmvc form表單提交中文亂碼
- 3-3 數據的格式化
- 3-4 自定義類型轉換器
- 3-5 其他知識點
- 3-6 crud代碼
- 3-7 @DateTimeFormat日期格式化
- 3-8 數據驗證的概念及JSR303驗證
- 3-9 Hibernate-Validator驗證框架
- 3-10 Controller捕獲錯誤消息
- 3-11 errors標簽在頁面中獲取錯誤消息
- 3-12 錯誤消息的定制及國際化
- 3-13 自定義攔截器
- 3-14 Java代碼中獲取國際化信息
- 3-15 超級鏈接設置國際化
- 3-16 AJAX支持之@RequestBody
- mybatis
- 1. mybatis第一天
- 1. 為什么使用mybatis
- 2. 下載地址
- 3. hello
- 4. mybatis三種開發模式
- 5. 全局配屬屬性內容
- 6. DTD設置
- 7. Mapper中的CRUD
- 8. 8.mybatis使用主鍵自增
- 9. #{}中的參數處理
- 10. #{}與${}區別
- 11. 集合數據的查詢
- 12 動態sql
- 12.1 if
- 12.2 choose, when, otherwise
- 12.3 trim, where, set
- 12.4 foreach
- 代碼位置
- 2. mybatis第二天
- 1.封裝map類型的數據
- 2. resultMap自定義封裝規則
- 0代碼位置
- 3. mybatis緩存機制
- ssm整合
- 1.maven
- 2.ssm基礎環境搭建
- 2-1 引入項目依賴的jar包
- 2-2 引入bootstrap,jquery
- 2-3 創建項目包結構
- 2-4 編寫web.xml配置文件
- 2-5 編寫sping,springmvc,mybatis配置文件
- 2-6 逆向工程mbg.xml
- shiro安全框架
- 1.shiro簡介
- 易購Buy商城
- 第一天
- 1.課程計劃
- 2.電商行業背景
- 3.易購Buy介紹
- 4.易購Buy架構
- 5.工程搭建
- 6.工程啟動和測試
- 7.ssm框架整合
- 8.整合測試
- 9.svn
- 9.1 svn服務端
- 9.2 svn客戶端
- 第二天
- 1.SOA架構分析
- 2.dubbo使用方法
- 3.注冊中心
- 4.工程改造
- 5.easyUI
- maven
- 1.maven介紹
- 2.idea配置maven和服務器
- 3.創建web工程
- 4.分模塊構建工程
- 5. 代碼位置
- 6. nexus
- Luence搜索
- 1.了解搜索技術
- 2.Lucene的基本使用
- solr
- SolrCloud