ssm專案載入順序 及 三層架構
阿新 • • 發佈:2019-01-24
2018/5/28追加:
[好的東西,需要讚美,需要鼓勵] 覺得好使,好用,留下評論和贊!可以掙積分啊.
---------------------------------------------------------------------------------------------------------------
2017/11/11追加:
只是文字顯得太過於單調,看起來太枯燥,為了便於理解,少走彎路, 故上圖 :
2017/11/11前總結 :
ssm在專案執行時,首先會載入web.xml
其中在web.xml中的載入順序為: <context-param>(上下文) > listener > filter > servlet>interceptor
(其實interceptor是在servlet裡面的)。
相對應的是:1、載入主容器spring的配置檔案(通常為applicationContext.xml),
(注:有四種不同的依賴注入方式,即:set注入,構造器注入,靜態工廠注入,例項工廠注入)
(注:功能--Controller註解不掃描(scan), 資料庫連線(配置資料庫檔案(bean),載入資料庫驅動(bean)), )
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath:applicationContext.xml</param-value>
</context-param>
2、再者載入監聽器listener驅動,
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、再者載入過濾器,
(注:功能--Controller註解掃描(scan), 進行編碼防止亂碼, 攔截所有請求)
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、而後載入springMVC的配置檔案(spring-mvc.xml),
(注:這其中若設定了優先順序,則按照優先順序順序進行載入.)
(注:功能--配置校驗器(配置校驗資訊檔案,配置驅動), 檔案上傳, 檢視名稱解析(新增前後綴), 解決json亂碼問題)
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
<!-- classpath:只會到你的class路徑中查詢找檔案 -->
<!-- classpath*:不僅包含class路徑,還包括jar檔案中(class路徑)進行查詢. -->
</init-param>
<load-on-startup>1</load-on-startup> <!-- 載入優先順序 -->
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern><!-- 攔截所有request請求 -->
</servlet-mapping>
此外,對於其他的配置,將在需要用到時進行載入,不會主動載入.
(注:其他的有錯誤資訊檔案<error-page>,<welcome-file-list>等)
5、之後載入 interceptor(指的是攔截器)
————————————————————————————————————————————
其實三層架構理念檢視層(mvc,即:model,view,servlet),邏輯層(service),資料訪問層(dao)
與ssm對應起來是,
springMVC充當了Servlet,接收使用者請求並響應;
spring管理整個應用中所有物件的建立,初始化,銷燬,及物件間關聯關係的維護. ???
MyBatis實現了dao層,完成對資料庫的增刪改查.
web.xml詳解:http://www.cnblogs.com/hellojava/archive/2012/12/28/2835730.html
問題彙總:
1.建立spring的applicationContext.xml檔案? 複製貼上.
2.spring都要加入那些包?剛學時,除去後綴resource,都加上.
3.ApplicationContext介面,常用的實現類ClassPathXmlApplicationContext.
4.對於spring的配置檔案applicationContext.xml檔案的放置位置:
若放在WEB-INF/下,檔名必須是applicationContext.xml,之後在web.xml中配置一個listener,不需要在web.xml檔案進行屬性配置;
若自定義檔名,則需在web.xml檔案中進行配置,加入contextConfigLocation這個context引數(若有多個則","號隔開).
2017/11/11