今天是劉小愛自學Java的第122天。web
感謝你的觀看,謝謝你。spring

學習內容安排以下:編程
-
Spring註解的使用。 -
JavaWeb項目的搭建。 -
Spring的Web集成。
原本還計劃學Spring的junit測試集成的,結果又沒時間了。瀏覽器
1、Spring的註解
IoC容器是Spring的特點之一,可使用它管理不少Bean,前幾天咱們都是將這些Bean配置在applicationContext.xml文件中的。服務器
而註解的做用在於:用了註解以後,就不須要在xml文件中配置這些了 。微信
1開啓註解

①開啓spring的註解app
context:annotation-config框架
讓註解有效了,可以識別註解。webapp
②配置註解掃描maven
context:component-scan
用來專門掃描含有@Component註解的類,自動將其做爲bean。
base-package
要掃描包的路徑,包含子包,com.liuxiaoai表示該包下的全部子包和類定義註解都有效.
注意:註解掃描配置的時候,會自動開啓註解功能,也就是說有了②的話,①就不須要了。
若是是註解+XML組合使用,能夠只開啓①。
2註解的使用

①@Component註解
至關於將對象存放到spring容器中。
其中@Component有三個子註解:
-
@Controller用於標註控制層組件,web層。 -
@Service用於標註業務層,service層。 -
@Repository用於標註數據訪問組件,dao層。
而@Component泛指組件,當組件很差歸類的時候,咱們可使用這個註解進行標註。
②@Autowired註解
將ProductDao注入到了ProductService
單獨使用@Autowired ,表示按照類型注入,會到spring容器中查找ProductDao的類型,對應<bean class=」」>中class的屬性值。
若是同類型有多個,可使用@Autowired + @Qualifier表示按照名稱注入。
會到spring容器中查找productDao名稱,對應<bean id=」」>中id的屬性值,好比:@Qualifier("productDao")
除此以外還有一種註解方法:
使用@Value("#{productDao}"),也就是Value註解加上spEL表達式,也能夠。
3註解測試

經過測試咱們能發現,調用service層代碼,dao層代碼也能被調用。
注意:上述代碼中可沒有實例化dao層對象。
其實不管是spring註解也好,仍是配置xml也罷,都是省略new對象這個步驟。
將dao層和service層對象關聯起來了,沒有new對象實例化,也能調用dao層代碼。
固然spring確定不止這麼簡單,只不過目前來講尚未學到其它的知識點。
2、JavaWeb項目搭建
1配置一個JavaWeb項目
這個在之前咱們就配置過好多遍了:

①設置打包方式
在pom文件中,使用packaging標籤添加web工程的打包方式爲war。
②編輯項目結構
快捷鍵Ctrl+Shift+Alt+S便可打開。
找到當前模塊下的web文件,若是沒有右擊模塊添加web,添加web目錄,目錄結構必須爲:項目名\src\main\webapp

③添加web.xml文件
web.xml文件是在webapp下的WEB-INF路徑下面。
④最終項目結構圖
webapp、resources以及Java是在同一個層級目錄的,都是在main路徑下面。
其中關於依賴的引入,須要什麼就從父工程中引入便可,在此就不詳細說明了。
2配置Tomcat插件
之前是直接在idea中配置Tomcat,如今由於是maven工程,也可使用Tomcat插件。

①配置Tomcat插件
一樣地,經過父工程中的pom文件引入便可。
其中經過configuration標籤,咱們能夠配置Tomcat的端口和路徑。
②運行Tomcat
點擊Tomcat7:run便可運行Tomcat。
爲了更便捷地運行Tomcat,能夠將其配置到idea菜單欄中:

3、Spring的Web集成
同樣仍是Java三層代碼的編寫。
1編寫代碼

①開啓spring註解功能
這不用多說,剛學習了的。
②service層代碼編寫
將HelloService對象提交到spring容器中管理,同時注入HelloDao。
在方法中編寫一條輸出語句做爲測試,並調用dao層的方法。
③dao層代碼編寫
將HelloDao對象提交到spring容器中管理,同時在方法中寫一條輸出語句做爲測試。

④web層代碼編寫
經過註解開發建立一個HelloServlet。
之前咱們都是直接new一個service層對應的對象,如今使用spring框架了,經過spring工廠獲取便可。
2項目測試

啓動Tomcat,並在瀏覽器上輸入對應的路徑(HelloServlet上的註解即爲對應訪問路徑),訪問服務器。
若是在idea控制檯上會輸出語句,證實該路徑成功訪問到了服務器,而且執行到了service層和dao層的代碼。
最後
時間受限,還有一個Spring監聽器也沒時間弄了,這塊應該還算簡單,立刻要學的AOP面向切面編程纔是重點,而且聽說很難。
謝謝你的觀看。
若是能夠的話,麻煩幫忙點個贊,謝謝你。
本文分享自微信公衆號 - 劉小愛(liuxiaoai946)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。