入職后發(fā)現(xiàn)企業(yè)中的項(xiàng)目往往和自己接觸的稍微不同,需要理解好配置文件,而不是像以往一樣直接上網(wǎng)down一個配置文件,企業(yè)中的項(xiàng)目很多類都是自己書寫的與業(yè)務(wù)十分緊密關(guān)聯(lián)。
企業(yè)中,項(xiàng)目的分離,可能調(diào)用服務(wù)調(diào)用數(shù)據(jù)庫,不同的項(xiàng)目結(jié)構(gòu)大同小異,但是基本原理還是一樣的。
下文將介紹如何快速理解一個基于Spring的JavaWeb項(xiàng)目。
總述
公司的項(xiàng)目往往具有測試,開發(fā),生產(chǎn)的等多種環(huán)境,項(xiàng)目的運(yùn)行部署在內(nèi)網(wǎng)內(nèi),大多數(shù)人開始接觸的項(xiàng)目都是公司整體項(xiàng)目的一小塊,根據(jù)公司大項(xiàng)目的 開發(fā)文檔,需求文檔查看整體業(yè)務(wù),大的技術(shù)框架,再開始進(jìn)行自己的Web項(xiàng)目研究。
其中我們的web項(xiàng)目設(shè)計不會脫離規(guī)范,可以根據(jù)查看順序去梳理業(yè)務(wù)細(xì)節(jié)。
查看順序:配置文件→依賴文件→MVC(配合開發(fā)者工具走通 一個邏輯)→配合參數(shù)類進(jìn)行業(yè)務(wù)熟悉。
最后對于緩存,其他接口的實(shí)現(xiàn),分布式架構(gòu)等可以先不關(guān)注,后期發(fā)展,走好第一步。
web.xml
Web.xml文件是項(xiàng)目核心配置文件。
首部:xml書寫規(guī)則的Schema文件。
主體配置:基本項(xiàng)目依賴文件,Servlet配置,監(jiān)聽器,過濾器,session超時,歡迎錯誤頁面等。
上下文[context-param]
作用:該元素用來聲明應(yīng)用范圍(整個WEB項(xiàng)目)內(nèi)的上下文初始化參數(shù)。
param-name 設(shè)定上下文的參數(shù)名稱。必須是唯一名稱
param-value 設(shè)定的參數(shù)名稱的值。
selvert配置,所有URL請求都將被Spring MVC的DispatcherServlet截獲。。
<servlet>
<servlet-name>Dispatch</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--"/"路徑型配置, 請求是否加后綴都可以 -->
<servlet-mapping>
<servlet-name>Dispatch</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
注:命名中默認(rèn)文件路徑為/WEB-INF/[servlet-name取的名字]-servlet.xml
監(jiān)聽器[listener]
一個Java類用來監(jiān)聽其他的JavaBean的變化,在javaweb中監(jiān)聽器就是監(jiān)聽三個域?qū)ο蟮臓顟B(tài)(request,session,servletContext)。
過濾器[Filter]
實(shí)際上就是對web資源進(jìn)行攔截,做一些處理后再交給下一個過濾器或servlet處理
通常都是用來攔截request進(jìn)行處理的,也可以對返回的response進(jìn)行攔截處理
作用:自動登錄,統(tǒng)一設(shè)置編碼格式,訪問權(quán)限控制,敏感字符過濾等。
安全限制[security-constraint]
之前未接觸,限制用戶的方法訪問相應(yīng)的資源。
會話參數(shù)[Session]
設(shè)置會話()過期時間,其中時間以分鐘為單位,假如設(shè)置60分鐘超時:
<session-config>
<session-timeout>60</session-timeout>
</session-config>
web.xml文件一般位于項(xiàng)目的WEB-INF目錄下。
web.xml加載過程:https://blog.csdn.net/ahou2468/article/details/79015251
順序是:<context-param>-><listener>-><filter>-><servlet>。其中,如果web.xml中出現(xiàn)了相同的元素,則按照在配置文件中出現(xiàn)的先后順序來加載。
Spring配置文件
不詳細(xì)介紹Spring構(gòu)造Bean的具體參數(shù),以及配置信息。
DispatcherServlet配置
DispatcherServlet是Spring提供的前置處理器服務(wù),本質(zhì)是Servlet,集中處理來自用戶的HTTP請求。
一般配置內(nèi)容:基本掃描Bean,mvc資源處理(攔截器,靜態(tài)資源)
Spring其他配置
一般在resources文件夾下,具有Spring需要裝載的Bean屬性配置,可以多文件設(shè)計。
spring Bean配置詳解:http://www.itdecent.cn/p/b9f450fdd69a
Spring的相關(guān)配置可以讓我們了解系統(tǒng)的裝載類(核心業(yè)務(wù)相關(guān)類),掃描域,攔截器可以看到系統(tǒng)統(tǒng)一的業(yè)務(wù)數(shù)據(jù)處理。
pom.xml
Java項(xiàng)目一般會配合Maven,找到pom.xml文件快速找到項(xiàng)目依賴,可大體了解項(xiàng)目的技術(shù)框架和公司企業(yè)內(nèi)部jar包。
Java目錄
為企業(yè)項(xiàng)目的一個模擬文件路徑,雖然可能和常見的不同,但是本質(zhì)是一樣的。
企業(yè)級項(xiàng)目一般公共部分具有常量定義(constants),配置參數(shù)(config),異常處理(exception),攔截器(interceptor),工具類(utils),驗(yàn)證類(validation),模板引擎(view)。
通過MVC相關(guān)文件夾熟悉代碼:
域(domain)/對象(vo/entity):快速了解業(yè)務(wù)實(shí)體。
業(yè)務(wù)(handler/service/dao/mapper):具體處理業(yè)務(wù)。
控制器(controller):處理,數(shù)據(jù)控制業(yè)務(wù)跳轉(zhuǎn)。
注:handler可能調(diào)用服務(wù),系統(tǒng)數(shù)據(jù)庫不透明。
同時可以根據(jù)其他參數(shù)類,枚舉類了解系統(tǒng)業(yè)務(wù)和參數(shù)含義。
例子如下:
其他
webapp:視圖相關(guān)文件目錄。
host文件:內(nèi)網(wǎng)相關(guān)服務(wù)器配置,可能需要和公司員工索要。
其他配置文件:證書,服務(wù)器,日志,框架等。