Java隨筆(一) Java SSM框架個(gè)人理解

一、前言

??在大學(xué)期間Java是一門選修課,而這門課和我想上的幾門大課時(shí)間沖突,這幾年里一直沒有認(rèn)真系統(tǒng)的學(xué)習(xí)過Java,僅僅是用到的時(shí)候會(huì)去翻翻百度看看CSDN等資料網(wǎng)站。現(xiàn)在有工作的需要,也正好開始認(rèn)真學(xué)習(xí)Java開發(fā),這一個(gè)系列就算是學(xué)習(xí)過程中的經(jīng)驗(yàn)總結(jié)和小隨筆,供自己回顧總結(jié)用。

二、SSM是什么

??工作中使用的是Java EE,在各類Java入門教程里都會(huì)提到它和SE版本的區(qū)別在于專為企業(yè)開發(fā)服務(wù)。在我個(gè)人看來,Java EE指的是為了使企業(yè)的開發(fā)產(chǎn)品能夠在統(tǒng)一標(biāo)準(zhǔn)下運(yùn)行,有更好的兼容性,而人為定制的一部分規(guī)范,其特點(diǎn)就是使用各類現(xiàn)有框架和組件進(jìn)行開發(fā)。
SSM(Spring+SpringMVC+Mybatis)框架是目前比較主流的開發(fā)框架之一,在后端開發(fā)上有著相對(duì)穩(wěn)定的地位。接下來的學(xué)習(xí)目標(biāo),就是熟練掌握SSM開發(fā)的技術(shù),并早日開始項(xiàng)目實(shí)戰(zhàn)。

1.Spring

Spring框架是個(gè)很成功的框架,其核心內(nèi)容是IoC(控制反轉(zhuǎn))和AOP(面向切面編程)。IoC的意思是,(用某Collection舉例子)假設(shè)我要實(shí)現(xiàn)一個(gè)功能,需要A和B兩個(gè)對(duì)象共同作用。常規(guī)的new方法可以在實(shí)現(xiàn)功能時(shí)創(chuàng)建需要的對(duì)象,但是如果我給12個(gè)頁面各配一個(gè)該功能,假設(shè)要修改A的定義,就得去對(duì)應(yīng)的實(shí)現(xiàn)中一個(gè)一個(gè)做改動(dòng),非常麻煩。所以我把A和B單獨(dú)抽出來在別的地方給定義,在需要用的時(shí)候自動(dòng)加載進(jìn)去,這過程不用我管理不說,只需要修改定義自動(dòng)裝配也會(huì)產(chǎn)生改變,這就是容器控制進(jìn)行依賴注入,也就是當(dāng)出現(xiàn)依賴時(shí),不讓產(chǎn)生依賴的一方去創(chuàng)建對(duì)應(yīng)的被依賴對(duì)象,而是由容器負(fù)責(zé)提前建立好,需要的時(shí)候分配給它。好處在于低耦合性,也就是減少不同模塊之間的關(guān)聯(lián)緊密程度,這樣需要修改的時(shí)候就可以盡可能的減少修改內(nèi)容(比如僅僅對(duì)配置文件進(jìn)行修改而不是類中的聲明)。
說完IoC再來說說AOP。面向切面編程其實(shí)是一種針對(duì)“后一個(gè)操作可能使得前一個(gè)操作產(chǎn)生其他動(dòng)作但是不確定”情況的設(shè)計(jì)思路,比如數(shù)據(jù)庫中的出錯(cuò)回滾等。舉個(gè)栗子,我今天10次遠(yuǎn)征任務(wù)還差一次,點(diǎn)了3個(gè)長遠(yuǎn)征出去,然后來人告訴我20分鐘后維護(hù),我得取消一個(gè)遠(yuǎn)征換個(gè)短的。如果沒有維護(hù)這件事發(fā)生,我不需要執(zhí)行取消操作,這個(gè)事件就是一個(gè)分界點(diǎn)。AOP就是針對(duì)某些分界點(diǎn)使得事務(wù)流程產(chǎn)生分歧,需要調(diào)整先前產(chǎn)生的事的“針對(duì)多個(gè)對(duì)象”的編程思想,實(shí)際應(yīng)用還是應(yīng)該要等實(shí)戰(zhàn)接觸到。

2.SpringMVC

SpringMVC其實(shí)還是MVC,所謂MVC指的是Model-Viev-Controller結(jié)構(gòu)。Model,對(duì)應(yīng)POJO類,可以對(duì)應(yīng)數(shù)據(jù)庫里一個(gè)表等可操作的對(duì)象,是封裝產(chǎn)生的結(jié)果。View表示的是模型的數(shù)據(jù)可視化,比如取出數(shù)據(jù)輸出到控制臺(tái)etc。Controller負(fù)責(zé)在分開的Model和View之間進(jìn)行控制,實(shí)現(xiàn)修改實(shí)際數(shù)據(jù)和更新View。
SpringMVC是基于Spring框架實(shí)現(xiàn)的,依靠注解可以實(shí)現(xiàn)自動(dòng)掃描裝配,從而減少了代碼量,便于修改的同時(shí)也更加規(guī)范化。

3.Mybatis

Mybatis提供了對(duì)數(shù)據(jù)庫的操作。傳統(tǒng)的JDBC需要在Java類里加入大量規(guī)范性格式的代碼以便解讀插入的SQL語句,簡化了這一流程的就是Mybatis。對(duì)應(yīng)DAO(持久化訪問)層或者M(jìn)apper層,用一個(gè)Mapper.java接口和對(duì)應(yīng)的Mapper.xml去進(jìn)行數(shù)據(jù)庫操作。在接口里聲明操作類,然后在xml中將具體的SQL給出,就可以直接調(diào)用接口里的方法去進(jìn)行數(shù)據(jù)庫增刪查改。使用的時(shí)候需要配置數(shù)據(jù)庫連接文件。

三、項(xiàng)目搭建

1.項(xiàng)目準(zhǔn)備

SSM框架(Springmvc和SpringMybatis可以進(jìn)一步減少配置文件)
Navicat(用于數(shù)據(jù)庫的可視化管理)
Maven 3(用于導(dǎo)入需要的jar,可以將本地jar通過mvn isntall加載到本地倉庫)
Mysql
Tomcat/Resin:前者的錯(cuò)誤信息會(huì)在IDEA里面給出提示,后者會(huì)在web頁面上展示。

2.項(xiàng)目建立

使用空項(xiàng)目——Maven Module——webapp建立,刪除web.xml之外的全部配置文件,配置webapp下的index.jsp作為歡迎頁面。
項(xiàng)目的GroupId為package name,在src下建立Java文件夾,設(shè)置為代碼源,將resource設(shè)置為配置源。(這里有個(gè)問題,我用Java 8產(chǎn)生的配置文件在打包時(shí)會(huì)強(qiáng)行匹配到1.5水平,不知道路徑問題出在哪。)Java下建立對(duì)應(yīng)的包,分為四個(gè)層:Controller,Dao/Mapper,Model,Service。

3.配置文件

配置spring-mvc.xml和spring-mybatis.xml,然后配置jdbc.properties。具體配置等之后單獨(dú)開一篇詳細(xì)注釋一下。

4.配置Tomcat/Resin,開始寫內(nèi)容,調(diào)試。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 小時(shí)候,聽說我同學(xué)家辦葬禮,孝子在出殯前夜的家里,看見了喪父在窗外看著他。 現(xiàn)在看來,這個(gè)事情可能是心理學(xué)說的由哀...
    世說新解閱讀 172評(píng)論 0 0
  • 《人類簡史》,全書430頁,全球超級(jí)暢銷書 20多個(gè)國家版權(quán)30種文字,中信出版社出版 ,作者 青年怪才 尤瓦爾?...
    六戈閱讀 425評(píng)論 0 1
  • Stray Birds作者:泰戈?duì)?《飛鳥集》 譯者:水石山房主人(仗劍書生) 97 I think of ...
    水石山房主人閱讀 1,647評(píng)論 2 1

友情鏈接更多精彩內(nèi)容