自己挖坑自己填,先挖再說(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)版本》
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)該是一致的刁卜。
篇幅問(wèn)題志电,配置到這里基本告一段落,更多詳細(xì)信息另開一篇《IDEA上快速搭建基于maven的Spring MVC項(xiàng)目步驟[補(bǔ)充]》