擺脫localhost - 從0搭建SpringMVC工程

學(xué)習(xí)路徑:
阿里云上部署tomcat
從0搭建SpringMVC工程
[使用Mybatis鏈接遠(yuǎn)程數(shù)據(jù)庫(kù)] (http://www.reibang.com/p/bba31c8fc26d

image.png

Demo已經(jīng)準(zhǔn)備好了
https://github.com/Amberllo/SpringMVCExample

搭建環(huán)境:Maven + SpringMVC + Tomcat 9.0 + IntelliJ Idea
目標(biāo):在遠(yuǎn)程服務(wù)器冰更,跑一個(gè)基于SpringMVC的服務(wù)
具體步驟:

1.本地安裝Tomcat著角,Maven,配置環(huán)境變量(略)
2.使用IntelliJ Idea 創(chuàng)建普通Web工程,并設(shè)置工作目錄
3.在Web工程上添加Maven環(huán)境,添加Spring的相關(guān)依賴
4.配置web.xml,以及spring-mvc.xml
5.編寫(xiě)測(cè)試用的Controller
6.設(shè)置本地調(diào)試的tomcat
7.使用maven打war包,并部署到服務(wù)器中

1.本地安裝Tomcat, Maven

直接到Tomcat官網(wǎng)下載頁(yè)https://tomcat.apache.org/download-90.cgi


本地下載zip朋鞍,和服務(wù)器下載tar.gz并解壓

wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.zip
tar -zxvf apache-tomcat-9.0.35.tar.gz

maven也一樣,去官網(wǎng)下載妥箕,https://maven.apache.org/download.cgi

image.png

本地下載zip番舆,并設(shè)置環(huán)境變量,并在intelliJ Idea上配置Maven


image.png

在maven的conf/settings.xml矾踱,一定一定要配置阿里云鏡像恨狈,不然就慢慢等吧。

  <mirrors>
     <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

2.使用IntelliJ Idea 創(chuàng)建普通Web工程呛讲,并設(shè)置工作目錄


創(chuàng)建工程的方法很多禾怠,這次我選擇了,"裸奔"贝搁,從0搭建
所以選擇了Java + Web Application
選擇Project Structure吗氏,配置好web.xml路徑,src路徑雷逆,resources路徑


image.png

建立好webapp目錄弦讽,并把web文件夾的全部拖進(jìn)來(lái)(WEB-INF/web.xml,index.jsp)最后設(shè)置好工程web.xml的路徑


image.png

3.在Web工程上添加Maven環(huán)境,添加Spring的相關(guān)依賴

剛剛可以直接用maven創(chuàng)建工程..但苦于maven創(chuàng)建選項(xiàng)太多往产,還是選擇了Web工程從0搭建比較有學(xué)習(xí)價(jià)值


image.png

image.png

這樣被碗,我們的pom.xml 就構(gòu)建好了,在idea上pom.xml也是藍(lán)色的(個(gè)人試驗(yàn)過(guò)仿村,直接新建pom.xml文件锐朴,最后下載的依賴都關(guān)聯(lián)不到工程上)
添加關(guān)于Spring的核心依賴,并在terminal執(zhí)行 mvn clean install

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>SpringWeb</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>

        <!--1.定義spring 版本號(hào)-->
        <spring.version>5.1.6.RELEASE</spring.version>

    </properties>


    <dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
    
</project>

4.配置web.xml蔼囊,以及spring-mvc.xml

web.xml上焚志,主要配置welcome-file, DispatcherServlet,以及contextConfigLocation

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--welcome pages-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!--    配置springmvc DispatcherServlet-->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!--Sources標(biāo)注的文件夾下需要新建一個(gè)spring文件夾-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-*.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

這里classpath是指代碼里面的路徑畏鼓。具體是值工程里src/main/java, src/main/resources
剛開(kāi)始我把spring-mvc.xml酱酬,放在java目錄里,后續(xù)會(huì)一直報(bào)錯(cuò)
使用spring-*也是是后續(xù)添加別的配置做準(zhǔn)備云矫。


<?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-3.0.xsd">

    <!-- 1.開(kāi)啟注解模式岳悟!非常重要 -->
    <mvc:annotation-driven/>

    <!-- 2.自動(dòng)掃描該包,使SpringMVC認(rèn)為包下用了@controller注解的類(lèi)是控制器 -->
    <context:component-scan base-package="com.example.mvc">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 默認(rèn)的視圖解析器 在上邊的解析錯(cuò)誤時(shí)使用 (默認(rèn)使用html)- -->
    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/><!--設(shè)置JSP文件的目錄位置-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

這里xsi:schemaLocation要注意泼差,把后面schemaLocation的具體http路徑要補(bǔ)全,否則跑起來(lái)tomcat會(huì)無(wú)法解析mvc:annotation-driven呵俏, context:component-scan 等堆缘。總之就是用一個(gè)補(bǔ)一個(gè)普碎,一個(gè)不能少吼肥。

5.編寫(xiě)測(cè)試用的Controller

在配置好的目錄,新建HomeController麻车,簡(jiǎn)單寫(xiě)寫(xiě)測(cè)試配置就行了缀皱。

package com.example.mvc.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/home")

public class HomeController {
    @RequestMapping("index")
    public String indexTest(){
        return "Index hello";
    }
}

6.設(shè)置本地調(diào)試的tomcat

在Tomcat Server 上,配置Local信息动猬,選擇本地Tomcat


配置發(fā)布信息啤斗,選擇Deployment下Artifact


最后運(yùn)行,看看本地效果:

http://localhost:8080/SpringWeb
http://localhost:8080/SpringWeb/home/index

7.使用maven打war包赁咙,并部署到服務(wù)器中

要注意钮莲,在pom.xml上要配置<packaging>war</packaging>,才打出war包
把war包拷貝到遠(yuǎn)程服務(wù)器上彼水,重啟Tomcat
具體也很簡(jiǎn)單崔拥,使用scp命令,這里就不多說(shuō)了凤覆。
最后看看效果:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末链瓦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盯桦,更是在濱河造成了極大的恐慌慈俯,老刑警劉巖唯灵,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異萎庭,居然都是意外死亡告材,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)步鉴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)揪胃,“玉大人,你說(shuō)我怎么就攤上這事氛琢『暗荩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵阳似,是天一觀的道長(zhǎng)骚勘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)撮奏,這世上最難降的妖魔是什么俏讹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮畜吊,結(jié)果婚禮上泽疆,老公的妹妹穿的比我還像新娘。我一直安慰自己玲献,他們只是感情好殉疼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著捌年,像睡著了一般瓢娜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上礼预,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天眠砾,我揣著相機(jī)與錄音,去河邊找鬼托酸。 笑死荠藤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的获高。 我是一名探鬼主播哈肖,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼念秧!你這毒婦竟也來(lái)了淤井?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎币狠,沒(méi)想到半個(gè)月后游两,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漩绵,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年贱案,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片止吐。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宝踪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碍扔,到底是詐尸還是另有隱情瘩燥,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布不同,位于F島的核電站厉膀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏二拐。R本人自食惡果不足惜服鹅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望百新。 院中可真熱鬧企软,春花似錦、人聲如沸吟孙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杰妓。三九已至,卻和暖如春碘勉,著一層夾襖步出監(jiān)牢的瞬間巷挥,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工验靡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倍宾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓胜嗓,卻偏偏與公主長(zhǎng)得像高职,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辞州,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349