文章目錄
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,既是學方法,其實也是在學思路。