IDEA建立SpringMVC+Gradle專案

我不想取名發表於2018-04-04

    網上找了很多關於IDEA建立Spring+Gradle的專案,可能這個東西有點太基礎了吧,很多東西都是一筆帶過,所以找了很多才理解過來,我也算是初學,就記錄下來,這是我的第一篇,寫的不好請見諒

1-專案建立

    file->new->project,找到Gradle,勾選Java和web,然後next



    然後就是給你的專案取名字啦,在這裡GroupID和ArtifactId我是隨便給的,當然也會有規範的寫法,這個就大家自己去了解了,我這裡給的都是SpringMVC,如果不想用這個名字的可以給成其他的


    這一步就要注意了,選擇gradle,上面的一個是IDEA自帶的,下面的是自己本地安裝的,如果沒有安裝的話也可以使用IDEA自帶的,只是會比較慢,然後繼續下一步


    這裡就是專案名稱和專案路徑了,沒有問題的話就直接下一步


    然後專案建好等待gradle重新整理完畢專案結構就是這樣的了,但是我們比沒有發現任何配置檔案,包括web.xml都沒有,是的,這些全都要自己手動建立


2-Tomcat配置

    我們們先不管這個多,先來吧tomcat配好,其他的等會再說





    配置完成apply,ok,然後我們來新增配置檔案,為什麼要先陪tomcat然後再來新增配置檔案呢,因為配完tomcat可以直接生成web.xml 檔案啊,下面來看操作


    注意啦,圖上框出來的路徑是沒有修改的,是需要我們修改的

    路徑的選擇就直接定位到webapp下面,別忘了在最後面加上\WEB-INF\web.xml

    完成了之後就是這個樣子了,裡面除了標頭檔案什麼都沒有


3-jar包匯入

我們先別急著豐富裡面的內容,我們現在是建立gradle+SpringMVC專案,依賴包是少不了的,

最重要的兩個包:spring-context

                           spring-mvc

在這裡我們用的gradle啊,所以本來就不需要什麼導包操作,直接加兩句話就行了

    compile group: 'org.springframework', name: 'spring-webmvc', version: '5.0.4.RELEASE'
    compile group: 'org.springframework', name: 'spring-context', version: '5.0.5.RELEASE'


    等待更新完成之後可以看到jar包自動給加進來了,真的是感覺很方便啊


4-完善配置

    好了,現在開始配置springMVC的配置檔案吧,在這裡我們也是自己手動新增配置檔案的

    在resource下面新建一個這樣的東西,給他取個名字,取名字什麼的我就跳過了,我給的名字是spring-mvc.xml


    建完之後發現裡面也是空的,ok,我們現在就來豐富它


    我們來給它加上這樣的一些配置


   <!-- 配置掃描的Controller -->
    <context:component-scan base-package="org.zh.springmvc.controller" />
    <!-- 靜態資源訪問,例如圖片、js檔案、css檔案等 -->
    <mvc:default-servlet-handler />
    <!-- 開啟註解 -->
    <mvc:annotation-driven />
    <!-- jspViewResolver jsp檢視解析器 -->
    <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/page/"/><!-- 後臺預設返回檢視尋找檢視檔案的路徑 -->
        <property name="suffix" value=".jsp"/><!-- 後臺返回檢視預設新增的字尾 -->
    </bean>

    在這裡還是要說一下,我剛才在java資料夾下面建了一個org.zh.springmvc.controller這樣的包,這個我將會用來放Controller控制器,也是上面掃描配置的路徑

    好了現在我們還有一個web.xml檔案沒有配好,我們加上這樣的一些玩意

    這裡的靜態資源是可以有多個的,這裡配置這個/代表攔截所有url請求,攔截的是url,因為專案釋出後請求的所有資源都是以url來進行請求的,也就是說在請求靜態資源的時候系統會以為是一個普通的請求,然後對映到後臺發現沒有這個請求地址,然後前臺將拿不到資源資料,也就是所有的靜態資源將不能被訪問的,如果需要使用到靜態資源需要加上其他的配置,這個以後我發新的部落格會講到,如果想詳細的瞭解的話可以自己去查一下,只要是這樣寫就ok了

    當然裡面還有很多基本的配置我沒有寫,因為我覺得那些不是很重要,跟我們現在搭建這個專案關係不是很大,我們現在只需要理解這些就行了

    <servlet>
        <servlet-name>SpringMVC</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>
        </init-param>
    </servlet>
    <!-- 配置靜態資源攔截 -->
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

到現在為止我們算是配置完了,現在我們需要編寫一個控制器了,還記得我們之前在java資料夾下面建的子資料夾嗎?我們在裡面加上一個java檔案

@Controller
public class IndexController {
    @RequestMapping("home")
    public String home() {
        return "home";
    }
}

    同時我們還要建一個page資料夾,裡面再建一個home.jsp

    為什麼要建這個呢,因為這個在之前的配置裡面有,配置spring-mvc的配置檔案可以看到最後的兩段,意思就是我們後臺控制器返回的字串或者檢視模型會自動的在webapp下面的page資料夾裡面找對應的jsp檔案,例如返回 一個字串 index ,那麼就會自動的去匹配page資料夾下面的index.jsp


    注意一定要在類上面打上@Controller的註解哦,只有打了這個註解我們的程式才會知道它是一個控制器

    好了,現在我們來啟動tomcat來看一下效果吧


這是我們進來時的樣子,現在在瀏覽器上面敲上/home,然後回車,出現下面的頁面就算是成功啦


    你們在建立成功後敲/home會出現500錯誤,NoClassDefFoundError,是因為還缺少一個jar包依賴,這個也是我剛發現的就不想去改前面的東西啦,就直接貼在這吧,其實是因為我在spring-mvc配置裡面配了所以才會出現這個問題的,但是我這個工程以後還要用,所以就配了,解決方法是在gradle檔案裡面再加上一段

compile group: 'javax.servlet.jsp.jstl', name: 'jstl-api', version: '1.2'

    我比較注重以程式碼的方式為主,所以理論的會很少,因為我覺得有些東西只要會用就可以了,如果要深究的我覺得不是一個普通的程式設計師該做的事情,當然能把原理弄清楚的話不管是在解決問題方面還是寫程式碼方面都是會有很大的幫助的,所以如果對理論什麼的感興趣的可以自己去查一下資料

    這是我一次寫部落格,以後會在現在這個工程上繼續做演示其他東西的,也是為了給自己有點積累,以後會不定時更新,因為工作原因不知道什麼時候會更新的

轉載請標明出處

https://blog.csdn.net/qq_33733799/article/details/79816854


專案已經上傳到GitHub上了,由於是一個練習專案,所以會有其他的東西,不過不要緊,大家只看自己需要的地方就行GitHub傳送門


相關文章