Spring學習筆記(三) 實驗二——實驗四

junit是什麼

xUnit是一套基於測試驅動開發的測試框架
其中的斷言機制:將程序預期的結果與程序運行的最終結果進行比對,確保對結果的可預知性

Helloworld存在的幾個問題

src源碼包開始的路徑,
source folder源碼文件夾
所有源碼包都會合並放在類路徑
folder

源碼路徑
java: /bin/
web: /WEB-INF/classes/

ApplicationContest ioc容器
ClassPathXMLApplicationContext: xml配置文件在類路徑下
FileSystemXmlApplicationContext:xml配置文件在磁盤路徑下

給容器註冊一個組件,從容器中按照id拿到組件,自動new組件對象
容器中對象的創建在容器創建完成的時候就已經創建完成了
註冊了幾個對象就會new幾個對象
同一個組件在ioc容器中是單實例的,是在容器啓動完成之前就創建好的
xml文件中的property標籤含義就是調用setter方法爲javabean屬性賦值
不要亂改get/set,所有的方法建議自動生成

@方法

@Test 該方法可以不用main方法就可以測試出運行結果,是一種測試方法
被測試的方法必須是public修飾的
注二:
@Override是僞代碼,表示重寫。(當然不寫@Override也可以),不過寫上有如下好處:
1、可以當註釋用,方便閱讀;
2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯。例如,你如果沒寫@Override,而你下面的方法名又寫錯了,這時你的編譯器是可以編譯通過的,因爲編譯器以爲這個方法是你的子類中自己增加的方法。
舉例:在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。
@Override
public void onCreate(Bundle savedInstanceState)
{…….}
這種寫法是正確的,如果你寫成:
@Override
public void oncreate(Bundle savedInstanceState)
{…….}
編譯器會報如下錯誤:The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,以確保你正確重寫onCreate方法(因爲oncreate應該爲onCreate)。
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認爲你爲子類定義了一個新方法:oncreate

正確爲各種屬性賦值

基本類型直接使用property的value賦值,自動進行類型轉換

<bean id="person03" class="com.me.bean.Person">
        <!--有參構造器賦值-->
        <constructor-arg name="lastName" value="小明"></constructor-arg>
        <constructor-arg name="email" value="[email protected]"></constructor-arg>
        <constructor-arg name="gender" value=""></constructor-arg>
        <constructor-arg name="age" value="123"></constructor-arg>
    </bean>

避免賦值的不明確重載,底層算法會產生一系列使人迷惑的行爲
這個時候可以使用type來指定要賦值的參數的類型
比如:

<!--public Person(String lastName,Integer age,String gender)-->
<!--public Person(String lastName,String email,String gender)-->
<bean id="person 05" class="com.me.bean.Person" >
    <constructor-arg value="小花"></constructor-arg>
    <constructor-arg value="10" index="1" type="java.lang.Integer"></constructor-arg>
    <constructor-arg value=""></constructor-arg>
</bean>

通過p名稱空間爲bean賦值
xml中就接觸過名稱空間了,用來防止標籤重複
引入p名稱空間
xmlns:p=“http://www.springframework.org/schema/p”

  <bean id="person03" class="com.me.bean.Person" p:age="18" p:email="[email protected]">
        <!--p名稱空間賦值-->
    </bean>

什麼是Properties 類

Properties 類位於 java.util.Properties ,是Java 語言的配置文件所使用的類, Xxx.properties 爲Java 語言常見的配置文件,如數據庫的配
置 jdbc.properties, 系統參數配置 system.properties。 這裏,講解一下Properties 類的具體使用。
以key=value 的 鍵值對的形式進行存儲值。 key值不能重複。
繼承了Hashtable 類,以Map 的形式進行放置值, put(key,value) get(key)

複雜類型在標籤中賦值

標籤引用

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="car01" class="com.me.bean.Car">
        <property name="carName" value="寶馬"></property>
        <property name="color" value="green"></property>
        <property name="price" value="30000000"></property>
    </bean>


    <bean id="person01" class="com.me.bean.Person">
        <property name="lastName">
            <null/>
        </property>
        <property name="car" ref="car01">
        </property>
    </bean>
</beans>

爲list類型賦值

    <bean id="book01" class="com.me.bean.Book" p:bookName="東遊記"></bean>
    <bean id="person02" class="com.me.bean.Person">
        <property name="books">
            <list>
                <bean id="book02" class="com.me.bean.Book" p:bookName="西遊記"></bean>
                <ref bean="book01"></ref>
            </list>
        </property>
    </bean>

內部bean不能被獲取到,id寫和沒寫一樣

爲maps類型賦值

    <bean id="person03" class="com.me.bean.Person">
        <property name="maps">
            <map>
                <entry key="key01" value="張三"></entry>
                <entry key="key02" value="18"></entry>
                <entry key="key03" value-ref="book01"></entry>
                <entry key="key04">
                    <bean class="com.me.bean.Car" p:carName="寶馬"></bean>
                </entry>
            </map>
        </property>
    </bean>

爲properties類型賦值

<property name="properties">
            <props>
                <prop key="username">root</prop>
                <prop key="password">123456</prop>
            </props>
        </property>

util創建名稱空間,方便別人引用

<util:map id="myMap">                             
    <entry key="key01" value="張三"></entry>        
    <entry key="key02" value="18"></entry>
    <entry key="key03" value-ref="book01"></entry>
</util:map>

級聯屬性賦值

級聯屬性:屬性的屬性

這幾個實驗在學什麼?
是在學控制反轉 IOC,既是學方法,其實也是在學思路。

發佈了136 篇原創文章 · 獲贊 14 · 訪問量 5809
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章