IDEA上快速搭建基于maven的Spring MVC項(xiàng)目步驟

自己挖坑自己填,先挖再說(shuō)绪囱,嘿嘿,擠時(shí)間填上莹捡。后面還有一篇也要補(bǔ)的《IDEA上快速搭建基于maven的Spring boot項(xiàng)目步驟》


? ? 填坑鬼吵,本來(lái)前兩天就補(bǔ)坑了,結(jié)果在其他地方又遇到問(wèn)題忙著解決篮赢,拖到了今天齿椅,唉,技術(shù)還是太菜启泣,進(jìn)步之路任重道遠(yuǎn)吶涣脚。

使用工具:? idea2019、maven3.5.4

1寥茫、新建項(xiàng)目

2遣蚀、選擇maven原型模版,這樣生成的項(xiàng)目有一個(gè)大體的結(jié)構(gòu)

補(bǔ)充:一般的maven項(xiàng)目工程基本結(jié)構(gòu)

projectName

? ? ? ? |_pom.xml

? ? ? ? |_src

? ? ? ? ? ? |_main

? ? ? ? ? ? ? ? |_java(java源碼)

? ? ? ? ? ? ? ? |_resources(java配置文件)

? ? ? ? ? ? ? ? |_webapp(web的文件目錄)

? ? ? ? ? ? |_test

? ? ? ? ? ? ? ? |_java(java 測(cè)試源碼)

? ? ? ? ? ? ? ? |_resources(java 測(cè)試配置文件)

3纱耻、輸入包名芭梯、項(xiàng)目名稱,包名命名單位都有自己的要求的弄喘,自己寫反正按基本的樣式填一個(gè)

4.1玖喘、選擇使用的maven主目錄、配置文件蘑志、本地倉(cāng)庫(kù)累奈,按自己的來(lái),我的在D盤

4.2急但、這里要注意的就是maven的遠(yuǎn)程倉(cāng)庫(kù)url澎媒,如果是遇到依賴下載失敗或者下載速度慢的話,優(yōu)先考慮是不是這個(gè)沒(méi)配對(duì)羊始。

5旱幼、確認(rèn)工程名稱和目錄,這里要注意突委,項(xiàng)目會(huì)直接生成在Project location內(nèi)填寫的路徑內(nèi)(如果不存在文件夾會(huì)自動(dòng)創(chuàng)建)

6柏卤、一個(gè)maven的web項(xiàng)目就由idea創(chuàng)建完成了,當(dāng)然匀油,他結(jié)構(gòu)還不完善缘缚。因?yàn)橐蕾噷?dǎo)致生成失敗的小伙伴可以看這里?《idea2019中maven的依賴下載被坑記錄》

7.1、補(bǔ)全結(jié)構(gòu)敌蚜,補(bǔ)充上java桥滨、resources目錄

7.2、設(shè)置剛新建的2個(gè)文件夾為專門類型的文件夾,設(shè)置之后可看到顏色上明顯變化哦齐媒。


8蒲每、開始導(dǎo)入spring mvc依賴包,這一步開始才真正的是關(guān)于mvc項(xiàng)目的基本搭建配置(我是按spring+spring+mybaits配置的)喻括。

相關(guān)包依賴可以參考我找到的這位兄弟的詳細(xì)說(shuō)明?《Spring:Spring的各jar包依賴及作用詳解》以及這位大哥的文章?《基于Spring中各個(gè)jar包的作用及依賴(詳解)》人家整理的都很用心邀杏,感謝,向他們學(xué)習(xí)了唬血,mysql-connector-java與Mysql望蜡、Java的對(duì)應(yīng)版本《mysql-connector-java與Mysql、Java的對(duì)應(yīng)版本》

貼一張我的mysql版本



9拷恨、配置框架文件

主要腰配置web.xml脖律,spring上下文,spring mvc上下文腕侄。

1小泉、web.xml

[說(shuō)明,這里的log4j沒(méi)有配置完整兜挨,因?yàn)閟pring5.不建議使用log4j1.膏孟,建議配合log4j2],大概原因我在

我的依賴管理?《簡(jiǎn)單Spring+springMVC+Mybaits項(xiàng)目引入的pom依賴》也做了說(shuō)明拌汇,我測(cè)試過(guò)把spring核心依賴改為4.0.5的話,

web.xml內(nèi)log4j下面補(bǔ)上<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>項(xiàng)目可以運(yùn)行并正常打印log4j日志


<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

<display-name>Archetype Created Web Application</display-name>

<!--web容器啟動(dòng)后讀取log4j配置文件-->

<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>/WEB-INF/configs/spring/log4j.properties</param-value>

</context-param>

<!--web容器啟動(dòng)后讀取配置創(chuàng)建spring上下文-->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value> /WEB-INF/configs/spring/applicationContext.xml </param-value>

</context-param>

<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>


<servlet>

<servlet-name>mvc-dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!--mvc的DispatcherServlet對(duì)應(yīng)上下文配置設(shè)置弊决,如果不設(shè)置噪舀,默認(rèn)為/WEB-INF/$servlet-name$-servlet.xml-->

<!--也就是如果不配置下面的參數(shù),默認(rèn)就會(huì)按servlet-name去固定的位置找配置文件-->

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>mvc-dispatcher</servlet-name>

<!--mvc-dispatcher攔截所有請(qǐng)求--> <url-pattern>/</url-pattern>

</servlet-mapping>


<!--設(shè)置程序啟動(dòng)首頁(yè)-->

<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>


<!--設(shè)置程序錯(cuò)誤代碼對(duì)應(yīng)的跳轉(zhuǎn)頁(yè)-->

<error-page>

<error-code>500</error-code> <location>/WEB-INF/error/500err.html</location>

</error-page>

</web-app>? ?

2飘诗、spring上下文

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

<!-- 啟動(dòng)組件掃描与倡,排除@Controller組件,該組件由SpringMVC配置文件掃描 -->

<context:component-scan base-package="com.demo">

<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />

</context:component-scan>

<!--導(dǎo)入數(shù)據(jù)源配置文件-->

<import resource="spring-datasource.xml"/>

</beans>


3昆稿、spring mvc容器配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<!--配置mvc前端控制器掃描controller包內(nèi)的注解 啟用了該注解就無(wú)需使用<context:annotation-config/> -->

<context:component-scan base-package="com.demo.controller"></context:component-scan>

<!--對(duì)進(jìn)入DispatcherServlet的URL進(jìn)行篩查纺座,如果發(fā)現(xiàn)是靜態(tài)資源的請(qǐng)求, 就將該請(qǐng)求轉(zhuǎn)由Web應(yīng)用服務(wù)器默認(rèn)的Servlet處理溉潭,如果不是靜態(tài)資源的請(qǐng)求净响,才由DispatcherServlet繼續(xù)處理-->

<mvc:default-servlet-handler/>

<!--啟用后,默認(rèn)會(huì)幫我們注冊(cè)默認(rèn)處理請(qǐng)求喳瓣,參數(shù)和返回值的類馋贤, 其中最主要的兩個(gè)類:DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter-->

<mvc:annotation-driven/>

<!--配置視圖解析器,當(dāng)返回絕對(duì)路徑可不配置畏陕,返回相對(duì)路徑拼接前綴配乓、后綴-->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/"/>

<property name="suffix" value=".jsp"/>

</bean>

</beans>


????這里再額外說(shuō)明下路徑配置時(shí)會(huì)用到的“classpath路徑”,其實(shí)就是classes路徑,我這里直接用項(xiàng)目里的包結(jié)構(gòu)和tomcatwebapp內(nèi)的classes做比對(duì)犹芹,可以看到崎页,src和resources目錄下的會(huì)被加入classes目錄下,當(dāng)然腰埂,有一點(diǎn)就是classes內(nèi)存放的是.class而不是.java文件实昨。

????這里要注意下,如果用的是idea盐固,idea會(huì)采用關(guān)聯(lián)的方式荒给,在tomcat的webapps目錄下可能并沒(méi)有你的項(xiàng)目,但實(shí)際跟我這截圖應(yīng)該是一致的刁卜。

classpath路徑比對(duì)圖



篇幅問(wèn)題志电,配置到這里基本告一段落,更多詳細(xì)信息另開一篇《IDEA上快速搭建基于maven的Spring MVC項(xiàng)目步驟[補(bǔ)充]》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛔趴,一起剝皮案震驚了整個(gè)濱河市挑辆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孝情,老刑警劉巖鱼蝉,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異箫荡,居然都是意外死亡魁亦,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門羔挡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洁奈,“玉大人,你說(shuō)我怎么就攤上這事绞灼±酰” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵低矮,是天一觀的道長(zhǎng)印叁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)军掂,這世上最難降的妖魔是什么轮蜕? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮良姆,結(jié)果婚禮上肠虽,老公的妹妹穿的比我還像新娘。我一直安慰自己玛追,他們只是感情好税课,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布闲延。 她就那樣靜靜地躺著,像睡著了一般韩玩。 火紅的嫁衣襯著肌膚如雪垒玲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天找颓,我揣著相機(jī)與錄音合愈,去河邊找鬼。 笑死击狮,一個(gè)胖子當(dāng)著我的面吹牛佛析,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播彪蓬,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼寸莫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了档冬?” 一聲冷哼從身側(cè)響起膘茎,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酷誓,沒(méi)想到半個(gè)月后披坏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盐数,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年棒拂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娘扩。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡着茸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琐旁,到底是詐尸還是另有隱情,我是刑警寧澤猜绣,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布灰殴,位于F島的核電站,受9級(jí)特大地震影響掰邢,放射性物質(zhì)發(fā)生泄漏牺陶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一辣之、第九天 我趴在偏房一處隱蔽的房頂上張望掰伸。 院中可真熱鬧,春花似錦怀估、人聲如沸狮鸭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)歧蕉。三九已至灾部,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惯退,已是汗流浹背赌髓。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留催跪,地道東北人锁蠕。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像懊蒸,于是被迫代替她去往敵國(guó)和親荣倾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348