Spring MVC相關

配置文件說明

  • web.xml, 至關於一個java web項目的配置文件php

  • applicationContext.xml, spring配置文件, mybatis鏈接mysql配置文件html

  • sql-map-config-mysql.xml,mybatis配置文件前端

  • application.properties, 配置文件常量java

web.xml

  • Servlet至關於PHPmysql

  • org.springframework.web.context.ContextLoaderListener至關於ThinkPHP的核心包web

  • servlet和Filter初始化前和銷燬後,都會給實現了servletContextListener接口的監聽器發出相應的通知。spring

  • ContextLoadListener的定義,實現了上面的servletContextListener。這裏用到了代理模式,簡單的代理了ContextLoader類。ContextLoadListener類用來建立Spring application context,而且將application context註冊到servletContext裏面去。sql

  • 在 Servlet API中有一個ServletContextListener接口,它可以監聽ServletContext對象的生命週期,實際上就是監聽Web應用的生命週期。當Servlet容器啓動或終止Web應用時,會觸發ServletContextEvent事件,該事件由ServletContextListener來處理。在ServletContextListener接口中定義了處理ServletContextEvent 事件的兩個方法contextInitialized()和contextDestroyed()。ContextLoaderListener監聽器的做用就是啓動Web容器時,自動裝配ApplicationContext的配置信息。由於它實現了ServletContextListener這個接口,在web.xml配置了這個監聽器,啓動容器時,就會默認執行它實現的方法。因爲在ContextLoaderListener中關聯了ContextLoader這個類,因此整個加載配置過程由ContextLoader來完成。數據庫

  • 綜上,ContextLoaderListener類起着相當重要的做用。它讀取web.xml中配置的context-param中的配置文件,提早在web容器初始化前準備業務對應的Application context;將建立好的Application context放置於ServletContext中,爲springMVC部分的初始化作好準備。tomcat

  • DispatchServlet就相似TP的前端入口index.php

  • Filter,主要做用:統一設置字符集等。依賴於servlet容器,過濾器實例只在初始化的時候調用一次。

  • 關於classpath, 若是隻是一個普通的java web項目,classpath就是src目錄,若是是用Maven構建的就是resources目錄下。可是最終classpath都是映射到WEB-INF/classes

 

applicationContext.xml

  • context:component-scan:在xml配置了這個標籤後,spring能夠自動去掃描base-pack下面或者子包下面的java文件,若是掃描到有@Component @Controller@Service等這些註解的類,則把這些類註冊爲bean(bean就是實現了gettter和setter的一個類,用來和數據庫交互,和PHP中的model相似)

  • mvc:annotation-driven:在使用Spring MVC來作web前端框架時,須要使用標籤<mvc:annotation-driven/>,它是啓用MVC註解的鑰匙。若是沒有使用這個標籤,而僅僅是使用<context:component-scan/>標籤掃描並註冊了相關的註解類到bean中,那麼相關的細節功能並不能使用(@Controller@RequestMapping等基本功能除外),好比返回類型的定義,@RestController等。<context:component-scan/>標籤只是註冊bean,<mvc:annotation-driven/>則是告訴框架讓這些註解生效,是遞進關係。

 

pom.xml

    • profiles標籤下有兩個profile分別對應了本地和線上兩個環境,分別對應了main/resource/distribute/local|server, 兩套配置,本地運行mvn clean package -Plocal -DVERSION=12345 -Dmaven.test.skip=false tomcat:run,線上應該是mvn clean package -Pserver -DVERSION=12345 -Dmaven.test.skip=false tomcat:run?

    • repositories下面的兩個repository配置的是項目中依賴倉庫的地址,若是在項目中設置了地址,那maven的配置文件setting.xml中的配置就不會用到,好比我本機maven的setting.xml配置的地址是maven.aliyun.com,可是項目中實際配置了咱們公司內網的maven地址http://maven.fn.com,因此maven.aliyun.com就不會被用到,全部的依賴都是從maven.fn.com下載

 

sqlMapConfig.xml

 

 

 

 

項目命令

  • 本地運行btob-service:  mvn clean package -Plocal -DVERSION=12345 -Dmaven.test.skip=false tomcat:run

     

     

 

 

 

applicationContext.xml的解釋:http://www.javashuo.com/article/p-utdmmbof-kb.html

Spring MVC啓動過程詳解:http://www.javashuo.com/article/p-wuvvkifd-by.html

Spring contextConfigLocation默認加載文件的位置: http://www.javashuo.com/article/p-opzhmrun-hz.html

Spring MVC配置文件概述:https://www.yiibai.com/spring_mvc/springmvc_overview.html

淺談jdbcTemplate和MyBatis的區別:http://www.javashuo.com/article/p-hwcvqmyf-hy.html

相關文章
相關標籤/搜索